Changeset 9219 for release/1.2
- Timestamp:
- Apr 20, 2008, 12:06:22 PM (13 years ago)
- Location:
- release/1.2/source
- Files:
-
- 3 deleted
- 18 edited
- 8 copied
Legend:
- Unmodified
- Added
- Removed
-
release/1.2/source/doc/ccl-documentation.html
r9200 r9219 5 5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 6 6 <title>Clozure CL Documentation</title> 7 <meta name="generator" content="DocBook XSL Stylesheets V1.7 2.0" />8 <link rel="start" href="#id3 12246" title="Clozure CL Documentation" />9 <link rel="next" href="#id 469589" title="Chapter 1. About Clozure CL" />7 <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /> 8 <link rel="start" href="#id301106" title="Clozure CL Documentation" /> 9 <link rel="next" href="#id322476" title="Chapter 1. About Clozure CL" /> 10 10 </head> 11 11 <body> … … 14 14 <div> 15 15 <div> 16 <h1 class="title"><a id="id3 12246"></a>Clozure CL Documentation</h1>16 <h1 class="title"><a id="id301106"></a>Clozure CL Documentation</h1> 17 17 </div> 18 18 </div> … … 23 23 <dt> 24 24 <span class="chapter"> 25 <a href="#id 469589">1. About Clozure CL</a>25 <a href="#id322476">1. About Clozure CL</a> 26 26 </span> 27 27 </dt> … … 30 30 <dt> 31 31 <span class="sect1"> 32 <a href="#id 461338">1.1. Introduction to Clozure CL</a>32 <a href="#id378260">1.1. Introduction to Clozure CL</a> 33 33 </span> 34 34 </dt> … … 37 37 <dt> 38 38 <span class="chapter"> 39 <a href="#id 457672">2. Obtaining, Installing, and Running Clozure CL</a>39 <a href="#id335115">2. Obtaining, Installing, and Running Clozure CL</a> 40 40 </span> 41 41 </dt> … … 44 44 <dt> 45 45 <span class="sect1"> 46 <a href="#id 452608">2.1. Releases and System Requirements</a>46 <a href="#id360672">2.1. Releases and System Requirements</a> 47 47 </span> 48 48 </dt> 49 49 <dt> 50 50 <span class="sect1"> 51 <a href="#id 485386">2.2. Obtaining Clozure CL</a>51 <a href="#id364310">2.2. Obtaining Clozure CL</a> 52 52 </span> 53 53 </dt> 54 54 <dt> 55 55 <span class="sect1"> 56 <a href="#id 478754">2.3. Command Line Set Up</a>56 <a href="#id308181">2.3. Command Line Set Up</a> 57 57 </span> 58 58 </dt> … … 81 81 <dt> 82 82 <span class="chapter"> 83 <a href="#id 459555">3. Building Clozure CL from its Source Code</a>83 <a href="#id321732">3. Building Clozure CL from its Source Code</a> 84 84 </span> 85 85 </dt> … … 115 115 <dt> 116 116 <span class="chapter"> 117 <a href="#id 462094">4. Using Clozure CL</a>117 <a href="#id322946">4. Using Clozure CL</a> 118 118 </span> 119 119 </dt> … … 122 122 <dt> 123 123 <span class="sect1"> 124 <a href="#id 482055">4.1. Introduction</a>124 <a href="#id370264">4.1. Introduction</a> 125 125 </span> 126 126 </dt> … … 159 159 <dt> 160 160 <span class="chapter"> 161 <a href="#id 471096">5. The Clozure CL IDE</a>161 <a href="#id351866">5. The Clozure CL IDE</a> 162 162 </span> 163 163 </dt> … … 166 166 <dt> 167 167 <span class="sect1"> 168 <a href="#id 447378">5.1. Introduction</a>168 <a href="#id391992">5.1. Introduction</a> 169 169 </span> 170 170 </dt> 171 171 <dt> 172 172 <span class="sect1"> 173 <a href="#id 461540">5.2. Building the IDE</a>173 <a href="#id388704">5.2. Building the IDE</a> 174 174 </span> 175 175 </dt> 176 176 <dt> 177 177 <span class="sect1"> 178 <a href="#id 460360">5.3. Running the IDE</a>178 <a href="#id352336">5.3. Running the IDE</a> 179 179 </span> 180 180 </dt> 181 181 <dt> 182 182 <span class="sect1"> 183 <a href="#id 443840">5.4. IDE Features</a>183 <a href="#id349170">5.4. IDE Features</a> 184 184 </span> 185 185 </dt> 186 186 <dt> 187 187 <span class="sect1"> 188 <a href="#id 495865">5.5. IDE Sources</a>188 <a href="#id394341">5.5. IDE Sources</a> 189 189 </span> 190 190 </dt> 191 191 <dt> 192 192 <span class="sect1"> 193 <a href="#id 464104">5.6. The Application Builder</a>193 <a href="#id394374">5.6. The Application Builder</a> 194 194 </span> 195 195 </dt> … … 421 421 <dt> 422 422 <span class="sect1"> 423 <a href="#id 523636">12.12. The Foreign-Function-Interface Dictionary</a>423 <a href="#id430545">12.12. The Foreign-Function-Interface Dictionary</a> 424 424 </span> 425 425 </dt> … … 656 656 <div> 657 657 <div> 658 <h2 class="title"><a id="id 469589"></a>Chapter 1. About Clozure CL</h2>658 <h2 class="title"><a id="id322476"></a>Chapter 1. About Clozure CL</h2> 659 659 </div> 660 660 </div> … … 664 664 <dt> 665 665 <span class="sect1"> 666 <a href="#id 461338">1.1. Introduction to Clozure CL</a>666 <a href="#id378260">1.1. Introduction to Clozure CL</a> 667 667 </span> 668 668 </dt> … … 673 673 <div> 674 674 <div> 675 <h2 class="title" style="clear: both"><a id="id 461338"></a>1.1. Introduction to Clozure CL</h2>675 <h2 class="title" style="clear: both"><a id="id378260"></a>1.1. Introduction to Clozure CL</h2> 676 676 </div> 677 677 </div> … … 782 782 <div> 783 783 <div> 784 <h2 class="title"><a id="id 457672"></a>Chapter 2. Obtaining, Installing, and Running Clozure CL</h2>784 <h2 class="title"><a id="id335115"></a>Chapter 2. Obtaining, Installing, and Running Clozure CL</h2> 785 785 </div> 786 786 </div> … … 790 790 <dt> 791 791 <span class="sect1"> 792 <a href="#id 452608">2.1. Releases and System Requirements</a>792 <a href="#id360672">2.1. Releases and System Requirements</a> 793 793 </span> 794 794 </dt> … … 797 797 <dt> 798 798 <span class="sect2"> 799 <a href="#id 483238">2.1.1. LinuxPPC</a>799 <a href="#id369379">2.1.1. LinuxPPC</a> 800 800 </span> 801 801 </dt> 802 802 <dt> 803 803 <span class="sect2"> 804 <a href="#id 485826">2.1.2. Linux X8664</a>804 <a href="#id349897">2.1.2. Linux X8664</a> 805 805 </span> 806 806 </dt> 807 807 <dt> 808 808 <span class="sect2"> 809 <a href="#id 454012">2.1.3. FreeBSD-amd64</a>809 <a href="#id347997">2.1.3. FreeBSD-amd64</a> 810 810 </span> 811 811 </dt> 812 812 <dt> 813 813 <span class="sect2"> 814 <a href="#id 463497">2.1.4. DarwinPPC-MacOS-X</a>814 <a href="#id366253">2.1.4. DarwinPPC-MacOS-X</a> 815 815 </span> 816 816 </dt> 817 817 <dt> 818 818 <span class="sect2"> 819 <a href="#id 463405">2.1.5. Darwinx8664-MacOS-X</a>819 <a href="#id364292">2.1.5. Darwinx8664-MacOS-X</a> 820 820 </span> 821 821 </dt> … … 824 824 <dt> 825 825 <span class="sect1"> 826 <a href="#id 485386">2.2. Obtaining Clozure CL</a>826 <a href="#id364310">2.2. Obtaining Clozure CL</a> 827 827 </span> 828 828 </dt> … … 831 831 <dt> 832 832 <span class="sect2"> 833 <a href="#id 484245">2.2.1. The Mac Way</a>833 <a href="#id364330">2.2.1. The Mac Way</a> 834 834 </span> 835 835 </dt> 836 836 <dt> 837 837 <span class="sect2"> 838 <a href="#id 487280">2.2.2. Getting Clozure CL with Subversion</a>838 <a href="#id397955">2.2.2. Getting Clozure CL with Subversion</a> 839 839 </span> 840 840 </dt> 841 841 <dt> 842 842 <span class="sect2"> 843 <a href="#id 458292">2.2.3. Tarballs</a>843 <a href="#id308156">2.2.3. Tarballs</a> 844 844 </span> 845 845 </dt> … … 848 848 <dt> 849 849 <span class="sect1"> 850 <a href="#id 478754">2.3. Command Line Set Up</a>850 <a href="#id308181">2.3. Command Line Set Up</a> 851 851 </span> 852 852 </dt> … … 894 894 <dt> 895 895 <span class="sect2"> 896 <a href="#id 491137">2.6.3. Installing SLIME</a>896 <a href="#id371816">2.6.3. Installing SLIME</a> 897 897 </span> 898 898 </dt> … … 930 930 <div> 931 931 <div> 932 <h2 class="title" style="clear: both"><a id="id 452608"></a>2.1. Releases and System Requirements</h2>932 <h2 class="title" style="clear: both"><a id="id360672"></a>2.1. Releases and System Requirements</h2> 933 933 </div> 934 934 </div> … … 977 977 <div> 978 978 <div> 979 <h3 class="title"><a id="id 483238"></a>2.1.1. LinuxPPC</h3>979 <h3 class="title"><a id="id369379"></a>2.1.1. LinuxPPC</h3> 980 980 </div> 981 981 </div> … … 989 989 <div> 990 990 <div> 991 <h3 class="title"><a id="id 485826"></a>2.1.2. Linux X8664</h3>991 <h3 class="title"><a id="id349897"></a>2.1.2. Linux X8664</h3> 992 992 </div> 993 993 </div> … … 1015 1015 <div> 1016 1016 <div> 1017 <h3 class="title"><a id="id 454012"></a>2.1.3. FreeBSD-amd64</h3>1017 <h3 class="title"><a id="id347997"></a>2.1.3. FreeBSD-amd64</h3> 1018 1018 </div> 1019 1019 </div> … … 1030 1030 <div> 1031 1031 <div> 1032 <h3 class="title"><a id="id 463497"></a>2.1.4. DarwinPPC-MacOS-X</h3>1032 <h3 class="title"><a id="id366253"></a>2.1.4. DarwinPPC-MacOS-X</h3> 1033 1033 </div> 1034 1034 </div> … … 1050 1050 <div> 1051 1051 <div> 1052 <h3 class="title"><a id="id 463405"></a>2.1.5. Darwinx8664-MacOS-X</h3>1052 <h3 class="title"><a id="id364292"></a>2.1.5. Darwinx8664-MacOS-X</h3> 1053 1053 </div> 1054 1054 </div> … … 1069 1069 <div> 1070 1070 <div> 1071 <h2 class="title" style="clear: both"><a id="id 485386"></a>2.2. Obtaining Clozure CL</h2>1071 <h2 class="title" style="clear: both"><a id="id364310"></a>2.2. Obtaining Clozure CL</h2> 1072 1072 </div> 1073 1073 </div> … … 1092 1092 <div> 1093 1093 <div> 1094 <h3 class="title"><a id="id 484245"></a>2.2.1. The Mac Way</h3>1094 <h3 class="title"><a id="id364330"></a>2.2.1. The Mac Way</h3> 1095 1095 </div> 1096 1096 </div> … … 1101 1101 After that you can double-click the Clozure CL application to 1102 1102 run it. The disk images are available at 1103 <a href="ftp://clozure.com/pub/testing/" target="_top">ftp://clozure.com/pub/testing/</a> </p>1103 <a class="ulink" href="ftp://clozure.com/pub/testing/" target="_top">ftp://clozure.com/pub/testing/</a> </p> 1104 1104 <p xmlns="http://www.w3.org/1999/xhtml">So that Clozure CL can locate its source code, and for other 1105 1105 reasons explained in 1106 <a href="#Predefined-Logical-Hosts" title="4.4.2. Predefined Logical Hosts">Section 4.4.2, âPredefined Logical Hostsâ</a>, you should either put the1106 <a class="xref" href="#Predefined-Logical-Hosts" title="4.4.2. Predefined Logical Hosts">Section 4.4.2, âPredefined Logical Hostsâ</a>, you should either put the 1107 1107 <code class="literal">ccl</code> directory in the same directory as the 1108 1108 Clozure CL application, or else put the Clozure CL application … … 1120 1120 <div> 1121 1121 <div> 1122 <h3 class="title"><a id="id 487280"></a>2.2.2. Getting Clozure CL with Subversion</h3>1122 <h3 class="title"><a id="id397955"></a>2.2.2. Getting Clozure CL with Subversion</h3> 1123 1123 </div> 1124 1124 </div> … … 1220 1220 to install it on your OS. You can find information about 1221 1221 obtaining and installing Subversion at 1222 the <a href="http://subversion.tigris.org/project_packages.html" target="_top">Subversion1222 the <a class="ulink" href="http://subversion.tigris.org/project_packages.html" target="_top">Subversion 1223 1223 Packages page</a>.</p> 1224 1224 </div> … … 1228 1228 <div> 1229 1229 <div> 1230 <h3 class="title"><a id="id 458292"></a>2.2.3. Tarballs</h3>1230 <h3 class="title"><a id="id308156"></a>2.2.3. Tarballs</h3> 1231 1231 </div> 1232 1232 </div> 1233 1233 </div> 1234 <p xmlns="http://www.w3.org/1999/xhtml">Tarballs are available at <a href="ftp://clozure.com/pub/testing/" target="_top">ftp://clozure.com/pub/testing/</a>. Download and extract1234 <p xmlns="http://www.w3.org/1999/xhtml">Tarballs are available at <a class="ulink" href="ftp://clozure.com/pub/testing/" target="_top">ftp://clozure.com/pub/testing/</a>. Download and extract 1235 1235 one on your local disk. Then edit the Clozure CL shell script to set 1236 1236 the value of <em class="varname">CCL_DEFAULT_DIRECTORY</em> and start 1237 up the appropriate Clozure CL kernel. See <a href="#The-ccl-Shell-Script" title="2.3.1. The ccl Shell Script">Section 2.3.1, âThe ccl Shell Scriptâ</a> for more information about the1237 up the appropriate Clozure CL kernel. See <a class="xref" href="#The-ccl-Shell-Script" title="2.3.1. The ccl Shell Script">Section 2.3.1, âThe ccl Shell Scriptâ</a> for more information about the 1238 1238 Clozure CL shell scripts.</p> 1239 1239 </div> … … 1243 1243 <div> 1244 1244 <div> 1245 <h2 class="title" style="clear: both"><a id="id 478754"></a>2.3. Command Line Set Up</h2>1245 <h2 class="title" style="clear: both"><a id="id308181"></a>2.3. Command Line Set Up</h2> 1246 1246 </div> 1247 1247 </div> … … 1262 1262 such as <code class="literal">require</code> and 1263 1263 <code class="literal">provide</code>, access to foreign interface 1264 information (see <a href="#The-Interface-Database" title="12.4. The Interface Database">The1264 information (see <a class="link" href="#The-Interface-Database" title="12.4. The Interface Database">The 1265 1265 Interface Database</a>) and the Lisp build process (see 1266 <a href="#Building-CCL">Building Clozure CL from its Source1266 <a class="link" href="#Building-CCL">Building Clozure CL from its Source 1267 1267 Code</a>). Specifically, it needs to set up logical 1268 1268 pathname translations for the <code class="literal">"ccl:"</code> … … 1358 1358 </pre> 1359 1359 <p xmlns="http://www.w3.org/1999/xhtml">The ccl shell script passes all of its arguments to the 1360 Clozure CL kernel. See <a href="#Invocation" title="2.3.2. Invocation">Section 2.3.2, âInvocationâ</a> for more1360 Clozure CL kernel. See <a class="xref" href="#Invocation" title="2.3.2. Invocation">Section 2.3.2, âInvocationâ</a> for more 1361 1361 information about these arguments. When invoked this way, the 1362 1362 Lisp should be able to initialize the <code class="literal">"ccl:"</code> … … 1447 1447 Clozure CL then exits. This is the same thing that is 1448 1448 returned by 1449 <span ><strong class="function">LISP-APPLICATION-VERSION</strong></span>.</p>1449 <span class="function"><strong>LISP-APPLICATION-VERSION</strong></span>.</p> 1450 1450 </li> 1451 1451 <li> … … 1455 1455 <em class="parameter"><code>character-encoding-name</code></em>). 1456 1456 Specifies the character encoding to use for 1457 <em class="varname">*TERMINAL-IO*</em> (see <a href="#Character-Encodings" title="4.3.4. Character Encodings">Section 4.3.4, âCharacter Encodingsâ</a>). Specifically, the1457 <em class="varname">*TERMINAL-IO*</em> (see <a class="xref" href="#Character-Encodings" title="4.3.4. Character Encodings">Section 4.3.4, âCharacter Encodingsâ</a>). Specifically, the 1458 1458 <em class="parameter"><code>character-encoding-name</code></em> string 1459 1459 is uppercased and interned in the KEYWORD package. If an … … 1483 1483 <p><code class="literal">-e</code> <em class="parameter"><code>form</code></em> 1484 1484 (or <code class="literal">--eval</code>). An expression is read (via 1485 <span ><strong class="function">READ-FROM-STRING</strong></span>) from the string1485 <span class="function"><strong>READ-FROM-STRING</strong></span>) from the string 1486 1486 <em class="parameter"><code>form</code></em> and evaluated. If 1487 1487 <em class="parameter"><code>form</code></em> contains shell metacharacters, … … 1499 1499 <code class="literal">--set-lisp-heap-gc-threshold</code> 1500 1500 <em class="parameter"><code>n</code></em>). Sets the Lisp gc threshold to 1501 <em class="parameter"><code>n</code></em>. (see <a href="#GC-Page-reclamation-policy" title="15.3. GC Page reclamation policy">Section 15.3, âGC Page reclamation policyâ</a></p>1501 <em class="parameter"><code>n</code></em>. (see <a class="xref" href="#GC-Page-reclamation-policy" title="15.3. GC Page reclamation policy">Section 15.3, âGC Page reclamation policyâ</a></p> 1502 1502 </li> 1503 1503 <li> … … 1511 1511 <code class="literal">--heap-reserve</code>). Reserves 1512 1512 <em class="parameter"><code>n</code></em> bytes for heap expansion. The 1513 default is <code class="literal"> 549755813888</code>. (see <a href="#Heap-space-allocation" title="15.1. Heap space allocation">Section 15.1, âHeap space allocationâ</a>)</p>1513 default is <code class="literal"> 549755813888</code>. (see <a class="xref" href="#Heap-space-allocation" title="15.1. Heap space allocation">Section 15.1, âHeap space allocationâ</a>)</p> 1514 1514 </li> 1515 1515 <li> 1516 1516 <p><code class="literal">-S</code> <em class="parameter"><code>n</code></em> (or 1517 1517 <code class="literal">--stack-size</code> <em class="parameter"><code>n</code></em>). Sets the size of the 1518 initial control stack to <em class="parameter"><code>n</code></em>. (see <a href="#Thread-Stack-Sizes" title="7.3.1. Thread Stack Sizes">Section 7.3.1, âThread Stack Sizesâ</a>)</p>1518 initial control stack to <em class="parameter"><code>n</code></em>. (see <a class="xref" href="#Thread-Stack-Sizes" title="7.3.1. Thread Stack Sizes">Section 7.3.1, âThread Stack Sizesâ</a>)</p> 1519 1519 </li> 1520 1520 <li> … … 1522 1522 <code class="literal">--thread-stack-size</code> 1523 1523 <em class="parameter"><code>n</code></em>). Sets the size of the first 1524 thread's stack to <em class="parameter"><code>n</code></em>. (see <a href="#Thread-Stack-Sizes" title="7.3.1. Thread Stack Sizes">Section 7.3.1, âThread Stack Sizesâ</a>)</p>1524 thread's stack to <em class="parameter"><code>n</code></em>. (see <a class="xref" href="#Thread-Stack-Sizes" title="7.3.1. Thread Stack Sizes">Section 7.3.1, âThread Stack Sizesâ</a>)</p> 1525 1525 </li> 1526 1526 <li> … … 1593 1593 </div> 1594 1594 <p xmlns="http://www.w3.org/1999/xhtml">For complete information about SLIME, see the 1595 SLIME <a href="http://common-lisp.net/project/slime/" target="_top">home1595 SLIME <a class="ulink" href="http://common-lisp.net/project/slime/" target="_top">home 1596 1596 page</a>. The SLIME home page provides up-to-date downloads, 1597 1597 plus documentation, tutorials, and instructional … … 1677 1677 <div> 1678 1678 <div> 1679 <h3 class="title"><a id="id 491137"></a>2.6.3. Installing SLIME</h3>1679 <h3 class="title"><a id="id371816"></a>2.6.3. Installing SLIME</h3> 1680 1680 </div> 1681 1681 </div> … … 1793 1793 mailing lists. You can find information about the mailing 1794 1794 lists on the 1795 Clozure CL <a href="http://trac.clozure.com/openmcl" target="_top">wiki</a>.</p>1795 Clozure CL <a class="ulink" href="http://trac.clozure.com/openmcl" target="_top">wiki</a>.</p> 1796 1796 </div> 1797 1797 </div> … … 1830 1830 <div> 1831 1831 <div> 1832 <h2 class="title"><a id="id 459555"></a>Chapter 3. Building Clozure CL from its Source Code</h2>1832 <h2 class="title"><a id="id321732"></a>Chapter 3. Building Clozure CL from its Source Code</h2> 1833 1833 </div> 1834 1834 </div> … … 1941 1941 <p xmlns="http://www.w3.org/1999/xhtml">The following terms are used in subsequent sections; it 1942 1942 may be helpful to refer to these definitions.</p> 1943 <p xmlns="http://www.w3.org/1999/xhtml"><a id="id 452942" class="indexterm"></a><ahref="#fasl-file"><em class="glossterm">fasl1944 files</em></a> are the object files produced1943 <p xmlns="http://www.w3.org/1999/xhtml"><a id="id352854" class="indexterm"></a><a class="glossterm" href="#fasl-file"><em class="glossterm">fasl 1944 files</em></a> are the object files produced 1945 1945 by <code class="literal">compile-file</code>. fasl files store the 1946 1946 machine code associated with function definitions and the … … 1951 1951 types (extensions) to name fasl files on different platforms; 1952 1952 see 1953 <a href="#Platform-specific-filename-conventions" title="Table 3.1. Platform-specific filename conventions">Table 3.1, âPlatform-specific filename conventionsâ</a> </p>1954 <p xmlns="http://www.w3.org/1999/xhtml">The <a id="id 483934" class="indexterm"></a> <ahref="#lisp_kernel"><em class="glossterm">Lisp1955 kernel</em></a> is a C program with a fair amount of1953 <a class="xref" href="#Platform-specific-filename-conventions" title="Table 3.1. Platform-specific filename conventions">Table 3.1, âPlatform-specific filename conventionsâ</a> </p> 1954 <p xmlns="http://www.w3.org/1999/xhtml">The <a id="id361301" class="indexterm"></a> <a class="glossterm" href="#lisp_kernel"><em class="glossterm">Lisp 1955 kernel</em></a> is a C program with a fair amount of 1956 1956 platform-specific assembly language code. Its basic job is to 1957 1957 map a lisp heap image into memory, transfer control to some … … 1961 1961 code. Clozure CL uses different filenames to name the lisp kernel 1962 1962 files on different platforms; see 1963 <a href="#Platform-specific-filename-conventions" title="Table 3.1. Platform-specific filename conventions">Table 3.1, âPlatform-specific filename conventionsâ</a>.</p>1964 <p xmlns="http://www.w3.org/1999/xhtml">A <a id="id 476697" class="indexterm"></a> <ahref="#lisp_image"><em class="glossterm">heap1965 image</em></a> is a file that can be quickly mapped into a1963 <a class="xref" href="#Platform-specific-filename-conventions" title="Table 3.1. Platform-specific filename conventions">Table 3.1, âPlatform-specific filename conventionsâ</a>.</p> 1964 <p xmlns="http://www.w3.org/1999/xhtml">A <a id="id374738" class="indexterm"></a> <a class="glossterm" href="#lisp_image"><em class="glossterm">heap 1965 image</em></a> is a file that can be quickly mapped into a 1966 1966 process' address space. Conceptually, it's not too different 1967 1967 from an executable file or shared library in the OS's native … … 1972 1972 comprise Clozure CL. Clozure CL uses different filenames to name the 1973 1973 standard full heap image files on different platforms; see 1974 <a href="#Platform-specific-filename-conventions" title="Table 3.1. Platform-specific filename conventions">Table 3.1, âPlatform-specific filename conventionsâ</a>.</p>1975 <p xmlns="http://www.w3.org/1999/xhtml">A <a id="id 464058" class="indexterm"></a> bootstrapping image is a minimal1974 <a class="xref" href="#Platform-specific-filename-conventions" title="Table 3.1. Platform-specific filename conventions">Table 3.1, âPlatform-specific filename conventionsâ</a>.</p> 1975 <p xmlns="http://www.w3.org/1999/xhtml">A <a id="id366185" class="indexterm"></a> bootstrapping image is a minimal 1976 1976 heap image used in the process of building Clozure CL itself. The 1977 1977 bootstrapping image contains just enough code to load the rest … … 1980 1980 chicken. Clozure CL uses different filenames to name the standard 1981 1981 bootstrapping image files on different platforms; see 1982 <a href="#Platform-specific-filename-conventions" title="Table 3.1. Platform-specific filename conventions">Table 3.1, âPlatform-specific filename conventionsâ</a>1982 <a class="xref" href="#Platform-specific-filename-conventions" title="Table 3.1. Platform-specific filename conventions">Table 3.1, âPlatform-specific filename conventionsâ</a> 1983 1983 .</p> 1984 1984 <p xmlns="http://www.w3.org/1999/xhtml">Each supported platform (and possibly a few 1985 1985 as-yet-unsupported ones) has a uniquely named subdirectory of 1986 1986 <code class="literal">ccl/lisp-kernel/</code>; each such 1987 <a id="id 474934" class="indexterm"></a>1987 <a id="id366211" class="indexterm"></a> 1988 1988 contains a Makefile and may contain some auxiliary files (linker 1989 1989 scripts, etc.) that are used to build the lisp kernel on a 1990 1990 particular platform.The platform-specific name of the kernel 1991 1991 build directory is described in 1992 <a href="#Platform-specific-filename-conventions" title="Table 3.1. Platform-specific filename conventions">Table 3.1, âPlatform-specific filename conventionsâ</a>.</p>1992 <a class="xref" href="#Platform-specific-filename-conventions" title="Table 3.1. Platform-specific filename conventions">Table 3.1, âPlatform-specific filename conventionsâ</a>.</p> 1993 1993 <div class="sect2" lang="en" xml:lang="en"> 1994 1994 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> … … 2106 2106 <li> 2107 2107 <p>Version 1.1 - the more recent version, which 2108 runs on more platforms (including x86-64 platforms) and2109 supports Unicode</p>2108 runs on more platforms (including x86-64 platforms) and 2109 supports Unicode</p> 2110 2110 </li> 2111 2111 <li> 2112 2112 <p>Version 1.2 - supports (at least) all of the 2113 features and platforms as 1.1, but is distributed and updated2114 differently</p>2113 features and platforms as 1.1, but is distributed and updated 2114 differently</p> 2115 2115 </li> 2116 2116 </ul> … … 2147 2147 $ cd ccl 2148 2148 $ cvs login # password is "cvs" 2149 2150 2151 2149 # this step only needs to be done once, 2150 # that'll store the trivially encrypted 2151 # password in ~/.cvspas 2152 2152 $ cvs update 2153 2153 </pre> 2154 2154 <p xmlns="http://www.w3.org/1999/xhtml">Unless you tell it to, cvs won't delete ("prune") empty 2155 2155 directories or create new ones when the repository changes. … … 2157 2157 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 2158 2158 $ cvs update -d -P # create dirs as needed, prune empty ones 2159 2159 </pre> 2160 2160 <p xmlns="http://www.w3.org/1999/xhtml">Version 1.2 archives follow naming conventions that are 2161 2161 similar to those used by 1.0 (though more platforms are supported.) … … 2165 2165 <p xmlns="http://www.w3.org/1999/xhtml">Subversion client programs are pre-installed on OSX 10.5 and 2166 2166 later and are typically either pre-installed or readily available 2167 on Linux and FreeBSD platforms. The <a href="http://subversion.tigris.org" target="_top">Subversion web page</a> contains links to subversion client programs2167 on Linux and FreeBSD platforms. The <a class="ulink" href="http://subversion.tigris.org" target="_top">Subversion web page</a> contains links to subversion client programs 2168 2168 for many platforms; users of OSX versions 10.4 and earlier can also 2169 2169 install Subversion clients via Fink or MacPorts.</p> … … 2182 2182 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 2183 2183 ? (ccl:rebuild-ccl :full t) 2184 2184 </pre> 2185 2185 <p xmlns="http://www.w3.org/1999/xhtml">That call to the function <code class="literal">rebuild-ccl</code> 2186 will performthe following steps:</p>2186 performs the following steps:</p> 2187 2187 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 2188 2188 <ul type="disc"> 2189 2189 <li> 2190 2190 <p>Deletes all fasl files and other object files in the 2191 <code class="literal">ccl</code>directory tree</p>2191 <code class="literal">ccl</code> directory tree</p> 2192 2192 </li> 2193 2193 <li> 2194 <p>Runs an external process whichdoes a2195 <code class="literal">make</code> in the currentplatform's kernel2196 build directory to create a new kernel</p>2194 <p>Runs an external process that does a 2195 <code class="literal">make</code> in the current platform's kernel 2196 build directory to create a new kernel</p> 2197 2197 </li> 2198 2198 <li> 2199 2199 <p>Does <code class="literal">(compile-ccl t)</code> in the running 2200 lisp, to produce aset of fasl files from the âhigher2201 levelâ lisp sources.</p>2200 lisp, to produce a set of fasl files from the âhigher 2201 levelâ lisp sources.</p> 2202 2202 </li> 2203 2203 <li> 2204 2204 <p>Does <code class="literal">(xload-level-0 :force)</code> in the 2205 running lisp, to compile thelisp sources in the2206 âccl:level-0;â directory into fasl files and2207 then createa bootstrapping image from those fasl2208 files.</p>2205 running lisp, to compile the lisp sources in the 2206 âccl:level-0;â directory into fasl files and 2207 then create a bootstrapping image from those fasl 2208 files.</p> 2209 2209 </li> 2210 2210 <li> 2211 2211 <p>Runs another external process, which causes the newly 2212 compiled lispkernel to load the new bootstrapping image.2213 The bootsrtrapping image then loadsthe âhigher2214 levelâ fasl files and a new copy of the platform's2215 full heap imageis then saved.</p>2212 compiled lisp kernel to load the new bootstrapping image. 2213 The bootsrtrapping image then loads the âhigher 2214 levelâ fasl files and a new copy of the platform's 2215 full heap image is then saved.</p> 2216 2216 </li> 2217 2217 </ul> … … 2235 2235 </div> 2236 2236 </div> 2237 <p xmlns="http://www.w3.org/1999/xhtml">The Lisp kernel is the executable whichyou run to use2237 <p xmlns="http://www.w3.org/1999/xhtml">The Lisp kernel is the executable that you run to use 2238 2238 Lisp. It doesn't actually contain the entire Lisp 2239 2239 implementation; rather, it loads a heap image which contains the 2240 specifics -the "library", as it might be called if this was a C2240 specificsâthe "library", as it might be called if this was a C 2241 2241 program. The kernel also provides runtime support to the heap 2242 2242 image, such as garbage collection, memory allocation, exception 2243 2243 handling, and the OS interface.</p> 2244 2244 <p xmlns="http://www.w3.org/1999/xhtml">The Lisp kernel file has different names on different 2245 platforms. See FIXTHIS . On all platforms the lisp kernel sources reside 2245 platforms. See 2246 <a class="xref" href="#Platform-specific-filename-conventions" title="Table 3.1. Platform-specific filename conventions">Table 3.1, âPlatform-specific filename conventionsâ</a>. On all 2247 platforms the lisp kernel sources reside 2246 2248 in <code class="literal">ccl/lisp-kernel</code>.</p> 2247 2249 <p xmlns="http://www.w3.org/1999/xhtml">This section gives directions on how to rebuild the Lisp … … 2256 2258 </pre> 2257 2259 <p xmlns="http://www.w3.org/1999/xhtml"> 2258 2260 </p> 2259 2261 <div class="sect2" lang="en" xml:lang="en"> 2260 2262 <div xmlns="http://www.w3.org/1999/xhtml" class="titlepage"> … … 2266 2268 </div> 2267 2269 <p xmlns="http://www.w3.org/1999/xhtml">The Clozure CL kernel can be bult with the following widely 2268 available tools:</p>2270 available tools:</p> 2269 2271 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> 2270 2272 <ul type="disc"> … … 2287 2289 </div> 2288 2290 <p xmlns="http://www.w3.org/1999/xhtml"> In general, the more recent the versions of those 2289 tools, the better; some versions of gcc 3.x on Linux have2290 difficulty compiling some of the kernel source code correctly2291 (so gcc 4.0 should be used, if possible.) On OSX, the2292 versions of the tools distributed with XCode should work fine;2293 on Linux, the versions of the tools installed with the OS (or2294 available through its package management system) should work2295 fine if they're "recent enough". On FreeBSD, the installed2296 version of the <code class="literal">m4</code> program doesn't support2297 some features that the kernel build process depends on; the2298 GNU version of the m4 macroprocessor (called2299 <code class="literal">gm4</code> on FreeBSD) should be installed2291 tools, the better; some versions of gcc 3.x on Linux have 2292 difficulty compiling some of the kernel source code correctly 2293 (so gcc 4.0 should be used, if possible.) On OSX, the 2294 versions of the tools distributed with XCode should work fine; 2295 on Linux, the versions of the tools installed with the OS (or 2296 available through its package management system) should work 2297 fine if they're "recent enough". On FreeBSD, the installed 2298 version of the <code class="literal">m4</code> program doesn't support 2299 some features that the kernel build process depends on; the 2300 GNU version of the m4 macroprocessor (called 2301 <code class="literal">gm4</code> on FreeBSD) should be installed. 2300 2302 2301 </p>2303 </p> 2302 2304 </div> 2303 2305 <div class="sect2" lang="en" xml:lang="en"> … … 2314 2316 shell> cd ccl/lisp-kernel/<em class="replaceable"><code>PLATFORM</code></em> 2315 2317 shell> make 2316 </pre>2318 </pre> 2317 2319 <p xmlns="http://www.w3.org/1999/xhtml"> 2318 </p>2320 </p> 2319 2321 <p xmlns="http://www.w3.org/1999/xhtml">That'll assemble several assembly language source files, 2320 2322 compile several C source files, and link 2321 2323 ../../<em class="replaceable"><code>the kernel</code></em>. 2322 </p>2324 </p> 2323 2325 </div> 2324 2326 </div> … … 2332 2334 </div> 2333 2335 <p xmlns="http://www.w3.org/1999/xhtml">The initial heap image is loaded by the Lisp kernel, and 2334 provides most allof the language implementation The heap image2336 provides most of the language implementation The heap image 2335 2337 captures the entire state of a running Lisp (except for external 2336 2338 resources, such as open files and TCP sockets). After it is … … 2347 2349 build a new heap image.</p> 2348 2350 <p xmlns="http://www.w3.org/1999/xhtml">(You might also wish to build a heap image if you have a 2349 large program which it is very complicated or time-consuming to2351 large program that is very complicated or time-consuming to 2350 2352 load, so that you will be able to load it once, save an image, 2351 2353 and thenceforth never have to load it again. At any time, a heap … … 2367 2369 <li> 2368 2370 <p>Using your existing Clozure CL, create a 2369 bootstrapping image</p>2371 bootstrapping image</p> 2370 2372 </li> 2371 2373 <li> 2372 2374 <p>Using your existing Clozure CL, recompile your 2373 updated Clozure CL sources</p>2375 updated Clozure CL sources</p> 2374 2376 </li> 2375 2377 <li> 2376 2378 <p>Invoke Clozure CL with the bootstrapping image 2377 you just created (rather than with the existing full heap2378 image).</p>2379 you just created (rather than with the existing full heap 2380 image).</p> 2379 2381 </li> 2380 2382 </ol> 2381 2383 </div> 2382 2384 <p xmlns="http://www.w3.org/1999/xhtml">When you invoke Clozure CL with the bootstrapping image, it 2383 will start up, load al of the Clozure CL fasl files, and save out2384 anew full heap image. Voila. You've created a new heap2385 image.</p>2385 starts up, loads all of the Clozure CL fasl files, and saves out a 2386 new full heap image. Voila. You've created a new heap 2387 image.</p> 2386 2388 <p xmlns="http://www.w3.org/1999/xhtml">A few points worth noting:</p> 2387 2389 <div xmlns="http://www.w3.org/1999/xhtml" class="itemizedlist"> … … 2389 2391 <li> 2390 2392 <p>There's a circular dependency between the full heap 2391 image and thebootstrapping image, in that each is used to2392 build the other.</p>2393 image and the bootstrapping image, in that each is used to 2394 build the other.</p> 2393 2395 </li> 2394 2396 <li> 2395 2397 <p>There are some minor implementation 2396 differences, but the environment in effect after the2397 bootstrapping image has loaded its fasl files is essentially2398 equivalent to the environment provided by the full heap2399 image; the latter loads a lot faster and is easier to2400 distribute, of course.</p>2398 differences, but the environment in effect after the 2399 bootstrapping image has loaded its fasl files is essentially 2400 equivalent to the environment provided by the full heap 2401 image; the latter loads a lot faster and is easier to 2402 distribute, of course.</p> 2401 2403 </li> 2402 2404 <li> 2403 2405 <p>If the full heap image doesn't work (because 2404 of an OScompatibilty problem or other bug), it's very likely2405 that thebootstrapping image will suffer the same2406 problems.</p>2406 of an OS compatibilty problem or other bug), it's very likely 2407 that the bootstrapping image will suffer the same 2408 problems.</p> 2407 2409 </li> 2408 2410 </ul> … … 2434 2436 <code class="literal">save-application</code>. This process is called 2435 2437 "cross-dumping".</p> 2436 <p xmlns="http://www.w3.org/1999/xhtml">Given a source distribution, a lisp kernel, and a heap2437 image, one can produce a bootst apping image by first invoking2438 <p xmlns="http://www.w3.org/1999/xhtml">Given a source distribution, a lisp kernel, and a heap 2439 image, one can produce a bootstrapping image by first invoking 2438 2440 Clozure CL from the shell:</p> 2439 2441 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> … … 2441 2443 Welcome to Clozure CL .... ! 2442 2444 ? 2443 </pre>2445 </pre> 2444 2446 <p xmlns="http://www.w3.org/1999/xhtml">then calling <code class="literal">ccl:xload-level-0</code> at the 2445 lisp prompt</p>2447 lisp prompt</p> 2446 2448 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 2447 2449 ? (ccl:xload-level-0) 2448 </pre>2449 <p xmlns="http://www.w3.org/1999/xhtml">This will compilethe lisp sources in the ccl/level-02450 </pre> 2451 <p xmlns="http://www.w3.org/1999/xhtml">This function compiles the lisp sources in the ccl/level-0 2450 2452 directory if they're newer than the corresponding fasl files 2451 and will then load the resulting fasl files into a simulated2452 lisp heap contained insidedata structures inside the running2453 and then loads the resulting fasl files into a simulated lisp 2454 heap contained in data structures inside the running 2453 2455 lisp. That simulated heap image is then written to 2454 2456 disk.</p> … … 2459 2461 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 2460 2462 ? (ccl:xload-level-0 :force) 2461 </pre>2462 <p xmlns="http://www.w3.org/1999/xhtml"> will forcerecompilation of the level-0 sources.</p>2463 </pre> 2464 <p xmlns="http://www.w3.org/1999/xhtml">forces recompilation of the level-0 sources.</p> 2463 2465 </div> 2464 2466 <div class="sect2" lang="en" xml:lang="en"> … … 2473 2475 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 2474 2476 ? (ccl:compile-ccl) 2475 </pre>2476 <p xmlns="http://www.w3.org/1999/xhtml">at the lisp prompt will compileany fasl files that are2477 out-of-date with respect to the corresponding lisp sources;2478 <code class="literal">(ccl:compile-ccl t)</code> will force2479 recompilation. <code class="literal">ccl:compile-ccl</code> will reload2480 newly-compiled versions of some files;2481 <code class="literal">ccl:xcompile-ccl</code> is analogous, but skips2482 this reloading step.</p>2483 <p xmlns="http://www.w3.org/1999/xhtml">Unless there are bootstrapping considerations involved, 2484 it usually doesn't matter whether these filesreloaded after2477 </pre> 2478 <p xmlns="http://www.w3.org/1999/xhtml">at the lisp prompt compiles any fasl files that are 2479 out-of-date with respect to the corresponding lisp sources; 2480 <code class="literal">(ccl:compile-ccl t)</code> forces 2481 recompilation. <code class="literal">ccl:compile-ccl</code> reloads 2482 newly-compiled versions of some files; 2483 <code class="literal">ccl:xcompile-ccl</code> is analogous, but skips 2484 this reloading step.</p> 2485 <p xmlns="http://www.w3.org/1999/xhtml">Unless there are bootstrapping considerations involved, it 2486 usually doesn't matter whether these files are reloaded after 2485 2487 they're recompiled.</p> 2486 2488 <p xmlns="http://www.w3.org/1999/xhtml">Calling <code class="literal">compile-ccl</code> or … … 2504 2506 </div> 2505 2507 <p xmlns="http://www.w3.org/1999/xhtml">To build a full image from a bootstrapping image, just 2506 invoke the kernel with the bootstrapping image is an2507 argument</p>2508 invoke the kernel with the bootstrapping image as an 2509 argument</p> 2508 2510 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 2509 2511 $ cd ccl # wherever your ccl directory is 2510 2512 $ ./KERNEL BOOT_IMAGE 2511 </pre>2513 </pre> 2512 2514 <p xmlns="http://www.w3.org/1999/xhtml">Where <em class="replaceable"><code>KERNEL</code></em> and 2513 2515 <em class="replaceable"><code>BOOT_IMAGE</code></em> are the names of 2514 2516 the kernel and boot image appropriate to the platform you are 2515 running on. See FIXTHIS</p>2517 running on. See <a class="xref" href="#Platform-specific-filename-conventions" title="Table 3.1. Platform-specific filename conventions">Table 3.1, âPlatform-specific filename conventionsâ</a></p> 2516 2518 <p xmlns="http://www.w3.org/1999/xhtml">That should load a few dozen fasl files (printing a 2517 2519 message as each file is loaded.) If all of these files … … 2523 2525 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 2524 2526 ? (ccl:save-application "<em class="replaceable"><code>image_name</code></em>") ; Overwiting the existing heap image 2525 </pre> 2526 <p xmlns="http://www.w3.org/1999/xhtml">Where <em class="replaceable"><code>image_name</code></em> is the name 2527 of the full heap image for your platform. See FIXTHIS.</p> 2527 </pre> 2528 <p xmlns="http://www.w3.org/1999/xhtml">Where <em class="replaceable"><code>image_name</code></em> is the name of 2529 the full heap image for your platform. See 2530 <a class="xref" href="#Platform-specific-filename-conventions" title="Table 3.1. Platform-specific filename conventions">Table 3.1, âPlatform-specific filename conventionsâ</a>.</p> 2528 2531 <p xmlns="http://www.w3.org/1999/xhtml">If things go wrong in the early stages of the loading 2529 2532 sequence, errors are often difficult to debug; until a fair … … 2541 2544 <div> 2542 2545 <div> 2543 <h2 class="title"><a id="id 462094"></a>Chapter 4. Using Clozure CL</h2>2546 <h2 class="title"><a id="id322946"></a>Chapter 4. Using Clozure CL</h2> 2544 2547 </div> 2545 2548 </div> … … 2549 2552 <dt> 2550 2553 <span class="sect1"> 2551 <a href="#id 482055">4.1. Introduction</a>2554 <a href="#id370264">4.1. Introduction</a> 2552 2555 </span> 2553 2556 </dt> … … 2566 2569 <dt> 2567 2570 <span class="sect2"> 2568 <a href="#id 496233">4.3.1. Characters</a>2571 <a href="#id388381">4.3.1. Characters</a> 2569 2572 </span> 2570 2573 </dt> … … 2595 2598 <dt> 2596 2599 <span class="sect2"> 2597 <a href="#id 497617">4.4.1. Pathname Expansion</a>2600 <a href="#id383711">4.4.1. Pathname Expansion</a> 2598 2601 </span> 2599 2602 </dt> … … 2605 2608 <dt> 2606 2609 <span class="sect2"> 2607 <a href="#id 497696">4.4.3. OS X (Darwin)</a>2610 <a href="#id383814">4.4.3. OS X (Darwin)</a> 2608 2611 </span> 2609 2612 </dt> 2610 2613 <dt> 2611 2614 <span class="sect2"> 2612 <a href="#id 497707">4.4.4. Linux</a>2615 <a href="#id383826">4.4.4. Linux</a> 2613 2616 </span> 2614 2617 </dt> 2615 2618 <dt> 2616 2619 <span class="sect2"> 2617 <a href="#id 497718">4.4.5. FreeBSD</a>2620 <a href="#id383838">4.4.5. FreeBSD</a> 2618 2621 </span> 2619 2622 </dt> … … 2641 2644 <div> 2642 2645 <div> 2643 <h2 class="title" style="clear: both"><a id="id 482055"></a>4.1. Introduction</h2>2646 <h2 class="title" style="clear: both"><a id="id370264"></a>4.1. Introduction</h2> 2644 2647 </div> 2645 2648 </div> … … 2669 2672 </p> 2670 2673 <p xmlns="http://www.w3.org/1999/xhtml"> 2671 <a id="id 460839" class="indexterm"></a>2672 <span ><strong class="command"><em class="varname"><a id="trace"></a>TRACE</em> {<em class="replaceable"><code>keyword</code></em>2674 <a id="id358756" class="indexterm"></a> 2675 <span class="command"><strong><em class="varname"><a id="trace"></a>TRACE</em> {<em class="replaceable"><code>keyword</code></em> 2673 2676 <em class="replaceable"><code>global-value</code></em>}* {<em class="replaceable"><code>spec</code></em> | 2674 2677 (<em class="replaceable"><code>spec</code></em> {<em class="replaceable"><code>keyword</code></em> … … 3113 3116 </div> 3114 3117 <p xmlns="http://www.w3.org/1999/xhtml"> 3115 <a id="id 438298" class="indexterm"></a>3116 <span ><strong class="command"><em class="varname"><a id="trace-level"></a>CCL:*TRACE-LEVEL*</em> [Variable]</strong></span>3118 <a id="id388151" class="indexterm"></a> 3119 <span class="command"><strong><em class="varname"><a id="trace-level"></a>CCL:*TRACE-LEVEL*</em> [Variable]</strong></span> 3117 3120 </p> 3118 3121 <p xmlns="http://www.w3.org/1999/xhtml">Variable bound to the current nesting level during execution of before and after trace actions. The default printing actions use it to determine the amount of indentation.</p> 3119 3122 <p xmlns="http://www.w3.org/1999/xhtml"> 3120 <a id="id 425701" class="indexterm"></a>3121 <span ><strong class="command"><em class="varname"><a id="trace-max-indent"></a>CCL:*TRACE-MAX-INDENT*</em> [Variable]</strong></span>3123 <a id="id388178" class="indexterm"></a> 3124 <span class="command"><strong><em class="varname"><a id="trace-max-indent"></a>CCL:*TRACE-MAX-INDENT*</em> [Variable]</strong></span> 3122 3125 </p> 3123 3126 <p xmlns="http://www.w3.org/1999/xhtml">The default before and after print actions will not indent by more than the value of <em class="varname">ccl:*trace-max-indent*</em> regardless of the current trace level.</p> 3124 3127 <p xmlns="http://www.w3.org/1999/xhtml"> 3125 <a id="id 496099" class="indexterm"></a>3126 <span ><strong class="command"><em class="varname"><a id="trace-function"></a>CCL:TRACE-FUNCTION</em> <em class="replaceable"><code>spec</code></em> <em class="varname">&key</em> {<em class="replaceable"><code>keyword</code></em> <em class="replaceable"><code>value</code></em>}* [Function]</strong></span>3128 <a id="id388207" class="indexterm"></a> 3129 <span class="command"><strong><em class="varname"><a id="trace-function"></a>CCL:TRACE-FUNCTION</em> <em class="replaceable"><code>spec</code></em> <em class="varname">&key</em> {<em class="replaceable"><code>keyword</code></em> <em class="replaceable"><code>value</code></em>}* [Function]</strong></span> 3127 3130 </p> 3128 3131 <p xmlns="http://www.w3.org/1999/xhtml"> … … 3131 3134 </p> 3132 3135 <p xmlns="http://www.w3.org/1999/xhtml"> 3133 <a id="id 496137" class="indexterm"></a>3134 <span ><strong class="command"><em class="varname"><a id="trace-print-level"></a>CCL:*TRACE-PRINT-LEVEL*</em> [Variable]</strong></span>3136 <a id="id388256" class="indexterm"></a> 3137 <span class="command"><strong><em class="varname"><a id="trace-print-level"></a>CCL:*TRACE-PRINT-LEVEL*</em> [Variable]</strong></span> 3135 3138 </p> 3136 3139 <p xmlns="http://www.w3.org/1999/xhtml">The default print actions bind <em class="varname">CL:*PRINT-LEVEL*</em> to this value while … … 3139 3142 explicit printing done by user code.</p> 3140 3143 <p xmlns="http://www.w3.org/1999/xhtml"> 3141 <a id="id 496163" class="indexterm"></a>3142 <span ><strong class="command"><em class="varname"><a id="trace-print-length"></a>CCL:*TRACE-PRINT-LENGTH*</em> [Variable]</strong></span>3144 <a id="id388290" class="indexterm"></a> 3145 <span class="command"><strong><em class="varname"><a id="trace-print-length"></a>CCL:*TRACE-PRINT-LENGTH*</em> [Variable]</strong></span> 3143 3146 </p> 3144 3147 <p xmlns="http://www.w3.org/1999/xhtml">The default print actions bind <em class="varname">CL:*PRINT-LENGTH*</em> to this value while … … 3147 3150 explicit printing done by user code.</p> 3148 3151 <p xmlns="http://www.w3.org/1999/xhtml"> 3149 <a id="id 496190" class="indexterm"></a>3150 <span ><strong class="command"><em class="varname"><a id="trace-bar-frequency"></a>CCL:*TRACE-BAR-FREQUENCY*</em> [Variable]</strong></span>3152 <a id="id388325" class="indexterm"></a> 3153 <span class="command"><strong><em class="varname"><a id="trace-bar-frequency"></a>CCL:*TRACE-BAR-FREQUENCY*</em> [Variable]</strong></span> 3151 3154 </p> 3152 3155 <p xmlns="http://www.w3.org/1999/xhtml">By default, this is nil. If non-nil it should be a integer, … … 3166 3169 and one <code class="literal">STRING</code> type in Clozure CL. There has been a 3167 3170 lot of discussion about this decision which can be found by 3168 searching the openmcl-devel archives at <a href="http://clozure.com/pipermail/openmcl-devel/" target="_top">http://clozure.com/pipermail/openmcl-devel/</a>. Suffice it3171 searching the openmcl-devel archives at <a class="ulink" href="http://clozure.com/pipermail/openmcl-devel/" target="_top">http://clozure.com/pipermail/openmcl-devel/</a>. Suffice it 3169 3172 to say that we decided that the simplicity and speed advantages of 3170 3173 only supporting UTF-32 outweigh the space disadvantage.</p> … … 3173 3176 <div> 3174 3177 <div> 3175 <h3 class="title"><a id="id 496233"></a>4.3.1. Characters</h3>3178 <h3 class="title"><a id="id388381"></a>4.3.1. Characters</h3> 3176 3179 </div> 3177 3180 </div> … … 3183 3186 characters can be directly represented. As of Unicode 5.0, only 3184 3187 about 100,000 of 1,114,112 possible <code class="literal">CHAR-CODE</code>s 3185 are actually defined. The function <span ><strong class="function">CODE-CHAR</strong></span>3188 are actually defined. The function <span class="function"><strong>CODE-CHAR</strong></span> 3186 3189 knows that certain ranges of code values (notably 3187 3190 <code class="literal">#xd800</code>-<code class="literal">#xddff</code>) will never be … … 3192 3195 values.</p> 3193 3196 <p xmlns="http://www.w3.org/1999/xhtml">Clozure CL supports character names of the form 3194 <code class="literal">u+xxxx</code> -where <code class="literal">x</code> is a3197 <code class="literal">u+xxxx</code>âwhere <code class="literal">x</code> is a 3195 3198 sequence of one or more hex digits. The value of the hex digits 3196 3199 denotes the code of the character. The <code class="literal">+</code> … … 3203 3206 spaces replaced by underscores. So 3204 3207 <code class="literal">#\Greek_Capital_Letter_Epsilon</code> can be used to 3205 refer to the character whose <span ><strong class="function">CHAR-CODE</strong></span> is3208 refer to the character whose <span class="function"><strong>CHAR-CODE</strong></span> is 3206 3209 <code class="literal">#x395</code>. To see the complete list of supported 3207 3210 character names, look just below the definition for 3208 <span><strong class="function">register-character-name</strong></span> in 3209 <code class="literal">ccl:level-1;l1-reader.lisp</code> see the complete 3210 list of char</p> 3211 <span class="function"><strong>register-character-name</strong></span> in 3212 <code class="literal">ccl:level-1;l1-reader.lisp</code>.</p> 3211 3213 </div> 3212 3214 <div class="sect2" lang="en" xml:lang="en"> … … 3218 3220 </div> 3219 3221 </div> 3220 <p xmlns="http://www.w3.org/1999/xhtml"><span ><strong class="function">OPEN</strong></span>, <span><strong class="function">LOAD</strong></span>, and3221 <span ><strong class="function">COMPILE-FILE</strong></span> all take an3222 <p xmlns="http://www.w3.org/1999/xhtml"><span class="function"><strong>OPEN</strong></span>, <span class="function"><strong>LOAD</strong></span>, and 3223 <span class="function"><strong>COMPILE-FILE</strong></span> all take an 3222 3224 <code class="literal">:EXTERNAL-FORMAT</code> keyword argument. The value 3223 3225 of <code class="literal">:EXTERNAL-FORMAT</code> can be 3224 3226 <code class="literal">:DEFAULT</code> (the default value), a line 3225 termination keyword (see <a href="#Line-Termination-Keywords" title="4.3.3. Line Termination Keywords">Section 4.3.3, âLine Termination Keywordsâ</a>), a character encoding3226 keyword (see <a href="#Character-Encodings" title="4.3.4. Character Encodings">Section 4.3.4, âCharacter Encodingsâ</a>), an3227 termination keyword (see <a class="xref" href="#Line-Termination-Keywords" title="4.3.3. Line Termination Keywords">Section 4.3.3, âLine Termination Keywordsâ</a>), a character encoding 3228 keyword (see <a class="xref" href="#Character-Encodings" title="4.3.4. Character Encodings">Section 4.3.4, âCharacter Encodingsâ</a>), an 3227 3229 external-format object created using 3228 <span ><strong class="function">CCL::MAKE-EXTERNAL-FORMAT</strong></span>(see <ahref="#f_make-external-format" title="Function MAKE-EXTERNAL-FORMAT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-external-format</b></a>), or a plist with keys:3230 <span class="function"><strong>CCL::MAKE-EXTERNAL-FORMAT</strong></span> (see <a class="xref" href="#f_make-external-format" title="Function MAKE-EXTERNAL-FORMAT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-external-format</b></a>), or a plist with keys: 3229 3231 <code class="literal">:DOMAIN</code>, <code class="literal">:CHARACTER-ENCODING</code> 3230 3232 and <code class="literal">:LINE-TERMINATION</code>. If … … 3251 3253 <p xmlns="http://www.w3.org/1999/xhtml">EXTERNAL-FORMATs are objects (structures) with three 3252 3254 read-only fields that can be accessed via the functions: 3253 <span ><strong class="function">EXTERNAL-FORMAT-DOMAIN</strong></span>,3254 <span ><strong class="function">EXTERNAL-FORMAT-LINE-TERMINATION</strong></span> and3255 <span ><strong class="function">EXTERNAL-FORMAT-CHARACTER-ENCODING</strong></span>.</p>3255 <span class="function"><strong>EXTERNAL-FORMAT-DOMAIN</strong></span>, 3256 <span class="function"><strong>EXTERNAL-FORMAT-LINE-TERMINATION</strong></span> and 3257 <span class="function"><strong>EXTERNAL-FORMAT-CHARACTER-ENCODING</strong></span>.</p> 3256 3258 <p> 3257 3259 <div class="refentrytitle"> … … 3260 3262 <br></br> 3261 3263 <code> 3262 <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">make-external-format</strong></span>3264 <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>make-external-format</strong></span> 3263 3265 <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> domain character-encoding line-termination 3264 3266 => external-format … … 3272 3274 <div> 3273 3275 <div class="refsect1" lang="en" xml:lang="en"> 3274 <a xmlns="http://www.w3.org/1999/xhtml" id="id 496501"></a>3276 <a xmlns="http://www.w3.org/1999/xhtml" id="id382341"></a> 3275 3277 <div class="header">Arguments and Values:</div> 3276 3278 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">domain</span></i>---This is used to indicate where the external … … 3286 3288 <em xmlns="http://www.w3.org/1999/xhtml" class="parameter"><code>line-termination</code></em>.</p> 3287 3289 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">character-encoding</span></i>---A keyword that specifies the character encoding 3288 for the external format. <a xmlns="http://www.w3.org/1999/xhtml" href="#Character-Encodings" title="4.3.4. Character Encodings">Section 4.3.4, âCharacter Encodingsâ</a>. Defaults to3290 for the external format. <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#Character-Encodings" title="4.3.4. Character Encodings">Section 4.3.4, âCharacter Encodingsâ</a>. Defaults to 3289 3291 <code xmlns="http://www.w3.org/1999/xhtml" class="literal">:DEFAULT</code> which means if 3290 3292 <em xmlns="http://www.w3.org/1999/xhtml" class="parameter"><code>domain</code></em> is … … 3299 3301 <code xmlns="http://www.w3.org/1999/xhtml" class="literal">:ISO-8859-1</code> encoding.</p> 3300 3302 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">line-termination</span></i>---A keyword that indicates a line termination 3301 keyword <a xmlns="http://www.w3.org/1999/xhtml" href="#Line-Termination-Keywords" title="4.3.3. Line Termination Keywords">Section 4.3.3, âLine Termination Keywordsâ</a>.3303 keyword <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#Line-Termination-Keywords" title="4.3.3. Line Termination Keywords">Section 4.3.3, âLine Termination Keywordsâ</a>. 3302 3304 Defaults to <code xmlns="http://www.w3.org/1999/xhtml" class="literal">:DEFAULT</code> which means 3303 3305 use the value of the variable 3304 3306 <em xmlns="http://www.w3.org/1999/xhtml" class="varname">CCL:*DEFAULT-LINE-TERMINATION*</em>.</p> 3305 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term"> [result]</span></i>---[description]</p>3307 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">external-format</span></i>---An external-format object as described above.</p> 3306 3308 </div> 3307 3309 <div class="refsect1" lang="en" xml:lang="en"> 3308 <a xmlns="http://www.w3.org/1999/xhtml" id="id 496634"></a>3310 <a xmlns="http://www.w3.org/1999/xhtml" id="id382520"></a> 3309 3311 <div class="header">Description:</div> 3310 <p xmlns="http://www.w3.org/1999/xhtml">Despite the function's name, it doesn't necessarily 3311 create anew, unique EXTERNAL-FORMAT object: two calls to3312 MAKE-EXTERNAL-FORMAT with the same arguments made in the 3313 same dynamic environment willreturn the same (eq) object.3312 <p xmlns="http://www.w3.org/1999/xhtml">Despite the function's name, it doesn't necessarily create a 3313 new, unique EXTERNAL-FORMAT object: two calls to 3314 MAKE-EXTERNAL-FORMAT with the same arguments made in the same 3315 dynamic environment return the same (eq) object. 3314 3316 </p> 3315 3317 </div> … … 3455 3457 character encodings. Clozure CL implements some of these encodings as 3456 3458 detailed below. These encodings are part of the specification of 3457 external formats <a href="#External-Formats" title="4.3.2. External Formats">Section 4.3.2, âExternal Formatsâ</a>. When reading3459 external formats <a class="xref" href="#External-Formats" title="4.3.2. External Formats">Section 4.3.2, âExternal Formatsâ</a>. When reading 3458 3460 from a stream, characters are converted from the specified 3459 3461 external character encoding to UTF-32. When writing to a stream, … … 3474 3476 <div> 3475 3477 <div> 3476 <h4 class="title"><a id="id 496886"></a>4.3.4.1. Encoding Problems</h4>3478 <h4 class="title"><a id="id382864"></a>4.3.4.1. Encoding Problems</h4> 3477 3479 </div> 3478 3480 </div> 3479 3481 </div> 3480 3482 <p xmlns="http://www.w3.org/1999/xhtml">On output to streams with character encodings that can 3481 encode the full range of Unicode - and on input from any stream3482 - "unencodable characters" are represented using the Unicode3483 #\Replacement_Character (= #\U+fffd); the presence of such a3484 character usually indicates that something got lost in3483 encode the full range of Unicodeâand on input from any 3484 streamâ"unencodable characters" are represented using the 3485 Unicode #\Replacement_Character (= #\U+fffd); the presence of 3486 such a character usually indicates that something got lost in 3485 3487 translation. Either data wasn't encoded properly or there was a 3486 3488 bug in the decoding process.</p> … … 3490 3492 <div> 3491 3493 <div> 3492 <h4 class="title"><a id="id 496902"></a>4.3.4.2. Byte Order Marks</h4>3494 <h4 class="title"><a id="id382877"></a>4.3.4.2. Byte Order Marks</h4> 3493 3495 </div> 3494 3496 </div> … … 3503 3505 used with UTF-8 character encodings, where it is simply used to 3504 3506 indicate that the encoding is UTF-8.)</p> 3505 <p xmlns="http://www.w3.org/1999/xhtml">Clozure CL w ill write a byte order mark as the first3506 character of a file or socket stream when the endianness of the3507 character encoding is not explicit. Clozure CL also expects a3508 byte order mark on input from streams where the endianness is3509 not explicit. If a byte order mark is missing from input data,3510 thatdata is assumed to be in big-endian order.</p>3507 <p xmlns="http://www.w3.org/1999/xhtml">Clozure CL writes a byte order mark as the first character 3508 of a file or socket stream when the endianness of the character 3509 encoding is not explicit. Clozure CL also expects a byte order 3510 mark on input from streams where the endianness is not 3511 explicit. If a byte order mark is missing from input data, that 3512 data is assumed to be in big-endian order.</p> 3511 3513 <p xmlns="http://www.w3.org/1999/xhtml">A byte order mark from a UTF-8 encoded input stream is not 3512 treated specially and and will just appear as normal character3513 from the input stream. It is probably a good idea to skip over3514 thischaracter.</p>3514 treated specially and just appears as a normal character from 3515 the input stream. It is probably a good idea to skip over this 3516 character.</p> 3515 3517 </div> 3516 3518 <div class="sect3" lang="en" xml:lang="en"> … … 3518 3520 <div> 3519 3521 <div> 3520 <h4 class="title"><a id="id 496941"></a>4.3.4.3. <span><strong class="function">DESCRIBE-CHARACTER-ENCODINGS</strong></span></h4>3522 <h4 class="title"><a id="id382915"></a>4.3.4.3. <span class="function"><strong>DESCRIBE-CHARACTER-ENCODINGS</strong></span></h4> 3521 3523 </div> 3522 3524 </div> … … 3524 3526 <p xmlns="http://www.w3.org/1999/xhtml">The set of character encodings supported by Clozure CL can be 3525 3527 retrieved by calling 3526 <span ><strong class="function">CCL:DESCRIBE-CHARACTER-ENCODINGS</strong></span>.</p>3528 <span class="function"><strong>CCL:DESCRIBE-CHARACTER-ENCODINGS</strong></span>.</p> 3527 3529 <p> 3528 3530 <div class="refentrytitle"> … … 3531 3533 <br></br> 3532 3534 <code> 3533 <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">describe-character-encodings</strong></span>3535 <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>describe-character-encodings</strong></span> 3534 3536 </code> 3535 3537 </div> … … 3540 3542 <div> 3541 3543 <div class="refsect1" lang="en" xml:lang="en"> 3542 <a xmlns="http://www.w3.org/1999/xhtml" id="id 496992"></a>3544 <a xmlns="http://www.w3.org/1999/xhtml" id="id382986"></a> 3543 3545 <div class="header">Description:</div> 3544 3546 <p xmlns="http://www.w3.org/1999/xhtml">Writes descriptions of all defined character encodings … … 3549 3551 </div> 3550 3552 <div class="refsect1" lang="en" xml:lang="en"> 3551 <a xmlns="http://www.w3.org/1999/xhtml" id="id 497009"></a>3553 <a xmlns="http://www.w3.org/1999/xhtml" id="id383003"></a> 3552 3554 <div class="header">See Also:</div> 3553 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#Character-Encodings" title="4.3.4. Character Encodings">Section 4.3.4, âCharacter Encodingsâ</a>, <a href="#External-Formats" title="4.3.2. External Formats">Section 4.3.2, âExternal Formatsâ</a>, <ahref="#Supported-Character-Encodings" title="4.3.4.4. Supported Character Encodings">Section 4.3.4.4, âSupported Character Encodingsâ</a></span>3555 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#Character-Encodings" title="4.3.4. Character Encodings">Section 4.3.4, âCharacter Encodingsâ</a>, <a class="xref" href="#External-Formats" title="4.3.2. External Formats">Section 4.3.2, âExternal Formatsâ</a>, <a class="xref" href="#Supported-Character-Encodings" title="4.3.4.4. Supported Character Encodings">Section 4.3.4.4, âSupported Character Encodingsâ</a></span> 3554 3556 </div> 3555 3557 </div> … … 3587 3589 EXTERNAL-FORMAT isn't explicitly specified. The default for 3588 3590 <em class="varname">*TERMINAL-IO*</em> can be set via the 3589 <code class="literal">-K</code> command-line argument (see <a href="#Command-Line-Options" title="2.5. Command Line Options">Section 2.5, âCommand Line Optionsâ</a>).3591 <code class="literal">-K</code> command-line argument (see <a class="xref" href="#Command-Line-Options" title="2.5. Command Line Options">Section 2.5, âCommand Line Optionsâ</a>). 3590 3592 </p> 3591 3593 <p>ISO-8859-1 just covers the first 256 Unicode code … … 3966 3968 <div> 3967 3969 <div> 3968 <h3 class="title"><a id="id 497617"></a>4.4.1. Pathname Expansion</h3>3970 <h3 class="title"><a id="id383711"></a>4.4.1. Pathname Expansion</h3> 3969 3971 </div> 3970 3972 </div> … … 3986 3988 </div> 3987 3989 <p xmlns="http://www.w3.org/1999/xhtml">Clozure CL sets up logical pathname translations for logical hosts: <code class="literal">ccl</code> and <code class="literal">home</code></p> 3988 <a xmlns="http://www.w3.org/1999/xhtml" id="id 497658" class="indexterm"></a>3990 <a xmlns="http://www.w3.org/1999/xhtml" id="id383764" class="indexterm"></a> 3989 3991 <p xmlns="http://www.w3.org/1999/xhtml">The <code class="literal">CCL</code> logical host should point to the 3990 3992 <code class="literal">ccl</code> directory. It is used for a variety of … … 3994 3996 is set to the value of the environment variable 3995 3997 <em class="varname">CCL_DEFAULT_DIRECTORY</em>, which is set by the 3996 openmcl shell script <a href="#The-ccl-Shell-Script" title="2.3.1. The ccl Shell Script">Section 2.3.1, âThe ccl Shell Scriptâ</a>. If3998 openmcl shell script <a class="xref" href="#The-ccl-Shell-Script" title="2.3.1. The ccl Shell Script">Section 2.3.1, âThe ccl Shell Scriptâ</a>. If 3997 3999 <em class="varname">CCL_DEFAULT_DIRECTORY</em> is not set, then it is set 3998 4000 to the directory containing the current heap image.</p> … … 4002 4004 <div> 4003 4005 <div> 4004 <h3 class="title"><a id="id 497696"></a>4.4.3. OS X (Darwin)</h3>4006 <h3 class="title"><a id="id383814"></a>4.4.3. OS X (Darwin)</h3> 4005 4007 </div> 4006 4008 </div> … … 4012 4014 <div> 4013 4015 <div> 4014 <h3 class="title"><a id="id 497707"></a>4.4.4. Linux</h3>4016 <h3 class="title"><a id="id383826"></a>4.4.4. Linux</h3> 4015 4017 </div> 4016 4018 </div> … … 4023 4025 <div> 4024 4026 <div> 4025 <h3 class="title"><a id="id 497718"></a>4.4.5. FreeBSD</h3>4027 <h3 class="title"><a id="id383838"></a>4.4.5. FreeBSD</h3> 4026 4028 </div> 4027 4029 </div> … … 4041 4043 </div> 4042 4044 <p xmlns="http://www.w3.org/1999/xhtml">In release 1.2 and later, Clozure CL 4043 supports <a href="#memory_mapped_file"><em class="glossterm">memory-mapped4045 supports <a class="glossterm" href="#memory_mapped_file"><em class="glossterm">memory-mapped 4044 4046 files</em></a>. On operating systems that support memory-mapped 4045 4047 files (including Mac OS X, Linux, and FreeBSD), the operating … … 4088 4090 platforms.</p> 4089 4091 <p xmlns="http://www.w3.org/1999/xhtml"> 4090 <a id="id 497839" class="indexterm"></a>4091 <span ><strong class="command"><em class="varname"><a id="map-file-to-ivector"></a>CCL:MAP-FILE-TO-IVECTOR</em>4092 <a id="id383954" class="indexterm"></a> 4093 <span class="command"><strong><em class="varname"><a id="map-file-to-ivector"></a>CCL:MAP-FILE-TO-IVECTOR</em> 4092 4094 <em class="parameter"><code>pathname</code></em> 4093 4095 <em class="parameter"><code>element-type</code></em> … … 4112 4114 <p>The element-type of the vector to be 4113 4115 created. Specified as 4114 a <a href="#type-specifier"><em class="glossterm">type-specifier</em></a>4116 a <a class="glossterm" href="#type-specifier"><em class="glossterm">type-specifier</em></a> 4115 4117 that names a subtype of either <em class="varname">SIGNED-BYTE</em> 4116 4118 or <em class="varname">UNSIGNED-BYTE</em>.</p> … … 4128 4130 </p> 4129 4131 <p xmlns="http://www.w3.org/1999/xhtml">The returned vector is 4130 a <a href="#displaced-array"><em class="glossterm">displaced-array</em></a>4132 a <a class="glossterm" href="#displaced-array"><em class="glossterm">displaced-array</em></a> 4131 4133 whose element-type is <em class="varname">(UPGRADED-ARRAY-ELEMENT-TYPE 4132 4134 element-type)</em>. The target of the displaced array is a … … 4148 4150 a memory error.</p> 4149 4151 <p xmlns="http://www.w3.org/1999/xhtml"> 4150 <a id="id4 97966" class="indexterm"></a>4151 <span ><strong class="command"><em class="varname"><a id="unmap-ivector"></a>CCL:UNMAP-IVECTOR</em>4152 <a id="id405599" class="indexterm"></a> 4153 <span class="command"><strong><em class="varname"><a id="unmap-ivector"></a>CCL:UNMAP-IVECTOR</em> 4152 4154 <em class="parameter"><code>displaced-array</code></em> 4153 4155 [Function]</strong></span> … … 4160 4162 target is an empty vector (of length zero).</p> 4161 4163 <p xmlns="http://www.w3.org/1999/xhtml"> 4162 <a id="id4 97997" class="indexterm"></a>4163 <span ><strong class="command"><em class="varname"><a id="map-file-to-octet-vector"></a>CCL:MAP-FILE-TO-OCTET-VECTOR</em>4164 <a id="id405634" class="indexterm"></a> 4165 <span class="command"><strong><em class="varname"><a id="map-file-to-octet-vector"></a>CCL:MAP-FILE-TO-OCTET-VECTOR</em> 4164 4166 <em class="parameter"><code>pathname</code></em> 4165 4167 [Function]</strong></span> … … 4170 4172 bytes.</p> 4171 4173 <p xmlns="http://www.w3.org/1999/xhtml"> 4172 <a id="id4 98022" class="indexterm"></a>4173 <span ><strong class="command"><em class="varname"><a id="unmap-octet-vector"></a>CCL:UNMAP-OCTET-VECTOR</em>4174 <a id="id405666" class="indexterm"></a> 4175 <span class="command"><strong><em class="varname"><a id="unmap-octet-vector"></a>CCL:UNMAP-OCTET-VECTOR</em> 4174 4176 <em class="parameter"><code>displaced-array</code></em> 4175 4177 [Function]</strong></span> … … 4187 4189 </div> 4188 4190 <p xmlns="http://www.w3.org/1999/xhtml">Clozure CL supports the definition 4189 of <a href="#static_variable"><em class="glossterm">static4191 of <a class="glossterm" href="#static_variable"><em class="glossterm">static 4190 4192 variables</em></a>, whose values are the same across threads, 4191 4193 and which may not be dynamically bound. The value of a static … … 4209 4211 static.</p> 4210 4212 <p xmlns="http://www.w3.org/1999/xhtml"> 4211 <a id="id4 98089" class="indexterm"></a>4212 <span ><strong class="command"><em class="varname"><a id="defstatic"></a>DEFSTATIC</em>4213 <a id="id405741" class="indexterm"></a> 4214 <span class="command"><strong><em class="varname"><a id="defstatic"></a>DEFSTATIC</em> 4213 4215 <em class="parameter"><code>var</code></em> 4214 4216 <em class="parameter"><code>value</code></em> … … 4247 4249 </div> 4248 4250 <p xmlns="http://www.w3.org/1999/xhtml">Proclaims the 4249 variable <a href="#special_variable"><em class="glossterm">special</em></a>,4251 variable <a class="glossterm" href="#special_variable"><em class="glossterm">special</em></a>, 4250 4252 assigns the variable the supplied value, and assigns 4251 4253 the <em class="varname">doc-string</em> to the … … 4263 4265 </div> 4264 4266 </div> 4265 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 98190" class="indexterm"></a>4267 <a xmlns="http://www.w3.org/1999/xhtml" id="id405853" class="indexterm"></a> 4266 4268 <p xmlns="http://www.w3.org/1999/xhtml">Clozure CL provides the 4267 4269 function <code class="literal">CCL:SAVE-APPLICATION</code>, which creates a file 4268 4270 containing an archived Lisp memory image.</p> 4269 4271 <p xmlns="http://www.w3.org/1999/xhtml">Clozure CL consists of a small executable called the 4270 Lisp <a href="#lisp_image"><em class="glossterm">kernel</em></a>, which4272 Lisp <a class="glossterm" href="#lisp_image"><em class="glossterm">kernel</em></a>, which 4271 4273 implements the very lowest level features of the Lisp system, and 4272 an <a href="#lisp_image"><em class="glossterm">image</em></a>, which4274 an <a class="glossterm" href="#lisp_image"><em class="glossterm">image</em></a>, which 4273 4275 contains the in-memory representation of most of the Lisp system, 4274 4276 including functions, data structures, variables, and so on. When … … 4289 4291 changes and later load them for use.</p> 4290 4292 <p xmlns="http://www.w3.org/1999/xhtml">In fact, you can go further than that. You can replace 4291 Clozure CL's <a href="#toplevel_function"><em class="glossterm">toplevel4293 Clozure CL's <a class="glossterm" href="#toplevel_function"><em class="glossterm">toplevel 4292 4294 function</em></a> with your own, and then, when the image is 4293 4295 loaded, the Lisp system immediately performs your tasks rather … … 4310 4312 in an executable image.</p> 4311 4313 <p xmlns="http://www.w3.org/1999/xhtml">On Mac OS X, 4312 the <a href="#application_builder">application builder</a>4314 the <a class="link" href="#application_builder">application builder</a> 4313 4315 uses <code class="literal">CCL:SAVE-APPLICATION</code> to create the executable 4314 portion of the <a href="#application_bundle"><em class="glossterm">application4316 portion of the <a class="glossterm" href="#application_bundle"><em class="glossterm">application 4315 4317 bundle</em></a>. Double-clicking the application bundle runs 4316 4318 the executable image created … … 4343 4345 converted, because address 0 can always be relied upon to refer to 4344 4346 the same thing.</p> 4345 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 98382" class="indexterm"></a>4347 <a xmlns="http://www.w3.org/1999/xhtml" id="id406074" class="indexterm"></a> 4346 4348 <p xmlns="http://www.w3.org/1999/xhtml">As of Clozure CL 1.2, the constant <code class="literal">CCL:+NULL-PTR+</code> 4347 4349 refers to a <code class="literal">MACPTR</code> object that points to address 0.</p> … … 4354 4356 or <code class="literal">opencml64</code> script.</p> 4355 4357 <p xmlns="http://www.w3.org/1999/xhtml"> 4356 <a id="id4 98419" class="indexterm"></a>4357 <span ><strong class="command"><em class="varname"><a id="save-application"></a>SAVE-APPLICATION</em>4358 <a id="id406122" class="indexterm"></a> 4359 <span class="command"><strong><em class="varname"><a id="save-application"></a>SAVE-APPLICATION</em> 4358 4360 <em class="parameter"><code>filename</code></em> 4359 4361 <em class="varname">&key</em> … … 4392 4394 <p>If this parameter is not supplied, Clozure CL uses its 4393 4395 default toplevel. The default toplevel runs 4394 the <a href="#REPL"><em class="glossterm">read-eval-print4396 the <a class="glossterm" href="#REPL"><em class="glossterm">read-eval-print 4395 4397 loop</em></a>.</p> 4396 4398 </dd> … … 4458 4460 <div> 4459 4461 <div> 4460 <h2 class="title"><a id="id 471096"></a>Chapter 5. The Clozure CL IDE</h2>4462 <h2 class="title"><a id="id351866"></a>Chapter 5. The Clozure CL IDE</h2> 4461 4463 </div> 4462 4464 </div> … … 4466 4468 <dt> 4467 4469 <span class="sect1"> 4468 <a href="#id 447378">5.1. Introduction</a>4470 <a href="#id391992">5.1. Introduction</a> 4469 4471 </span> 4470 4472 </dt> 4471 4473 <dt> 4472 4474 <span class="sect1"> 4473 <a href="#id 461540">5.2. Building the IDE</a>4475 <a href="#id388704">5.2. Building the IDE</a> 4474 4476 </span> 4475 4477 </dt> 4476 4478 <dt> 4477 4479 <span class="sect1"> 4478 <a href="#id 460360">5.3. Running the IDE</a>4480 <a href="#id352336">5.3. Running the IDE</a> 4479 4481 </span> 4480 4482 </dt> 4481 4483 <dt> 4482 4484 <span class="sect1"> 4483 <a href="#id 443840">5.4. IDE Features</a>4485 <a href="#id349170">5.4. IDE Features</a> 4484 4486 </span> 4485 4487 </dt> … … 4488 4490 <dt> 4489 4491 <span class="sect2"> 4490 <a href="#id 464744">5.4.1. Editor Windows</a>4492 <a href="#id347206">5.4.1. Editor Windows</a> 4491 4493 </span> 4492 4494 </dt> 4493 4495 <dt> 4494 4496 <span class="sect2"> 4495 <a href="#id 427255">5.4.2. The Lisp Menu</a>4497 <a href="#id362540">5.4.2. The Lisp Menu</a> 4496 4498 </span> 4497 4499 </dt> 4498 4500 <dt> 4499 4501 <span class="sect2"> 4500 <a href="#id 495106">5.4.3. The Tools Menu</a>4502 <a href="#id373691">5.4.3. The Tools Menu</a> 4501 4503 </span> 4502 4504 </dt> 4503 4505 <dt> 4504 4506 <span class="sect2"> 4505 <a href="#id 483840">5.4.4. The Inspector Window</a>4507 <a href="#id373711">5.4.4. The Inspector Window</a> 4506 4508 </span> 4507 4509 </dt> … … 4510 4512 <dt> 4511 4513 <span class="sect1"> 4512 <a href="#id 495865">5.5. IDE Sources</a>4514 <a href="#id394341">5.5. IDE Sources</a> 4513 4515 </span> 4514 4516 </dt> 4515 4517 <dt> 4516 4518 <span class="sect1"> 4517 <a href="#id 464104">5.6. The Application Builder</a>4519 <a href="#id394374">5.6. The Application Builder</a> 4518 4520 </span> 4519 4521 </dt> … … 4524 4526 <div> 4525 4527 <div> 4526 <h2 class="title" style="clear: both"><a id="id 447378"></a>5.1. Introduction</h2>4528 <h2 class="title" style="clear: both"><a id="id391992"></a>5.1. Introduction</h2> 4527 4529 </div> 4528 4530 </div> … … 4546 4548 <div> 4547 4549 <div> 4548 <h2 class="title" style="clear: both"><a id="id 461540"></a>5.2. Building the IDE</h2>4550 <h2 class="title" style="clear: both"><a id="id388704"></a>5.2. Building the IDE</h2> 4549 4551 </div> 4550 4552 </div> … … 4559 4561 <li> 4560 4562 <p>Run ccl from the shell. The easiest way to do this is 4561 generally to execute the openmcl or openmcl64 command.</p>4563 generally to execute the ccl or ccl64 command.</p> 4562 4564 </li> 4563 4565 <li> … … 4570 4572 interactions builds the IDE:</p> 4571 4573 <pre xmlns="http://www.w3.org/1999/xhtml" class="programlisting"> 4572 oshirion:ccl mikel$ openmcl644573 Welcome to Clozure Common Lisp Version 1.2-r8516MS(DarwinX8664)!4574 4575 4576 4574 oshirion:ccl mikel$ ccl64 4575 Welcome to Clozure Common Lisp Version 1.2-r9198M-trunk (DarwinX8664)! 4576 ? (require :cocoa-application) 4577 ;Loading #P"ccl:cocoa-ide;fasls;cocoa-utils.dx64fsl.newest"... 4578 ;Loading #P"ccl:cocoa-ide;fasls;cocoa-defaults.dx64fsl.newest"... 4577 4579 4578 4580 [...many lines of "Compiling" and "Loading" omitted...] 4579 4581 4580 4582 Saving application to /usr/local/ccl/Clozure CL.app/ 4581 4583 4582 4584 oshirion:ccl mikel$ 4583 4585 4584 4586 </pre> … … 4593 4595 <div> 4594 4596 <div> 4595 <h2 class="title" style="clear: both"><a id="id 460360"></a>5.3. Running the IDE</h2>4597 <h2 class="title" style="clear: both"><a id="id352336"></a>5.3. Running the IDE</h2> 4596 4598 </div> 4597 4599 </div> … … 4600 4602 application normally, by double-clicking its icon. When 4601 4603 launched, the IDE initially displays a 4602 single <a href="#listener_window"><em class="glossterm">listener4604 single <a class="glossterm" href="#listener_window"><em class="glossterm">listener 4603 4605 window</em></a> that you can use to interact with Lisp. You 4604 4606 can type Lisp expressions for evaluation at the prompt in the 4605 4607 listener window. You can also 4606 use <a href="#hemlock"><em class="glossterm">Hemlock</em></a> editing4608 use <a class="glossterm" href="#hemlock"><em class="glossterm">Hemlock</em></a> editing 4607 4609 commands to edit the text of expressions in the listener 4608 4610 window.</p> … … 4612 4614 <div> 4613 4615 <div> 4614 <h2 class="title" style="clear: both"><a id="id 443840"></a>5.4. IDE Features</h2>4616 <h2 class="title" style="clear: both"><a id="id349170"></a>5.4. IDE Features</h2> 4615 4617 </div> 4616 4618 </div> … … 4620 4622 <div> 4621 4623 <div> 4622 <h3 class="title"><a id="id 464744"></a>5.4.1. Editor Windows</h3>4624 <h3 class="title"><a id="id347206"></a>5.4.1. Editor Windows</h3> 4623 4625 </div> 4624 4626 </div> … … 4631 4633 the File menu.</p> 4632 4634 <p xmlns="http://www.w3.org/1999/xhtml">Editor windows 4633 implement <a href="#hemlock"><em class="glossterm">Hemlock</em></a>4635 implement <a class="glossterm" href="#hemlock"><em class="glossterm">Hemlock</em></a> 4634 4636 editing commands. You can use all the editing and customization 4635 4637 features of Hemlock within any editor window (including listener … … 4640 4642 <div> 4641 4643 <div> 4642 <h3 class="title"><a id="id 427255"></a>5.4.2. The Lisp Menu</h3>4644 <h3 class="title"><a id="id362540"></a>5.4.2. The Lisp Menu</h3> 4643 4645 </div> 4644 4646 </div> … … 4655 4657 <p xmlns="http://www.w3.org/1999/xhtml">You can interrupt computations, trigger breaks, and select 4656 4658 restarts from the Lisp menu. You can also display a backtrace or 4657 open the <a href="#section_inspector_window">Inspector4659 open the <a class="link" href="#section_inspector_window">Inspector 4658 4660 window</a>.</p> 4659 4661 </div> … … 4662 4664 <div> 4663 4665 <div> 4664 <h3 class="title"><a id="id 495106"></a>5.4.3. The Tools Menu</h3>4666 <h3 class="title"><a id="id373691"></a>5.4.3. The Tools Menu</h3> 4665 4667 </div> 4666 4668 </div> … … 4672 4674 symbols. The Processes window lists all threads running in the 4673 4675 current Lisp session. If you double-click a process entry, Clozure CL 4674 opens an <a href="#section_inspector_window">Inspector4676 opens an <a class="link" href="#section_inspector_window">Inspector 4675 4677 window</a> on that process.</p> 4676 4678 </div> … … 4679 4681 <div> 4680 4682 <div> 4681 <h3 class="title"><a id="id 483840"></a>5.4.4. The Inspector Window</h3>4683 <h3 class="title"><a id="id373711"></a>5.4.4. The Inspector Window</h3> 4682 4684 </div> 4683 4685 </div> … … 4711 4713 <div> 4712 4714 <div> 4713 <h2 class="title" style="clear: both"><a id="id 495865"></a>5.5. IDE Sources</h2>4715 <h2 class="title" style="clear: both"><a id="id394341"></a>5.5. IDE Sources</h2> 4714 4716 </div> 4715 4717 </div> … … 4737 4739 <div> 4738 4740 <div> 4739 <h2 class="title" style="clear: both"><a id="id 464104"></a>5.6. The Application Builder</h2>4741 <h2 class="title" style="clear: both"><a id="id394374"></a>5.6. The Application Builder</h2> 4740 4742 </div> 4741 4743 </div> … … 4745 4747 interface: the application builder. The application builder 4746 4748 constructs a 4747 Cocoa <a href="#application_bundle"><em class="glossterm">application4749 Cocoa <a class="glossterm" href="#application_bundle"><em class="glossterm">application 4748 4750 bundle</em></a> that runs a Lisp image when double-clicked. You 4749 4751 can use the application builder to create Cocoa applications in … … 4755 4757 the required subsystems, if necessary.</p> 4756 4758 <p xmlns="http://www.w3.org/1999/xhtml"> 4757 <a id="id 477838" class="indexterm"></a>4758 <span ><strong class="command"><em class="varname"><a id="build-application"></a>BUILD-APPLICATION</em> <em class="varname"><em class="varname">&key</em></em>4759 <a id="id394404" class="indexterm"></a> 4760 <span class="command"><strong><em class="varname"><a id="build-application"></a>BUILD-APPLICATION</em> <em class="varname"><em class="varname">&key</em></em> 4759 4761 (<em class="parameter"><code>name</code></em> <em class="replaceable"><code>"MyApplication"</code></em>) 4760 4762 (<em class="parameter"><code>type-string</code></em> <em class="replaceable"><code>"APPL"</code></em>) … … 4810 4812 </dt> 4811 4813 <dd> 4812 <p>Specifies the <a href="#creator_code"><em class="glossterm">creator4814 <p>Specifies the <a class="glossterm" href="#creator_code"><em class="glossterm">creator 4813 4815 code</em></a>, which uniquely identifies the application 4814 4816 under Mac OS X. The default creator code is that of Clozure CL. For 4815 4817 more information about reserving and assigning creator codes, 4816 4818 see 4817 Apple's <a href="http://developer.apple.com/datatype/index.html" target="_top">developer4819 Apple's <a class="ulink" href="http://developer.apple.com/datatype/index.html" target="_top">developer 4818 4820 page</a> on the topic.</p> 4819 4821 </dd> … … 4840 4842 <dd> 4841 4843 <p>A list of pathnames, where each pathname identifies 4842 a <a href="#nibfile"><em class="glossterm">nibfile</em></a> created4844 a <a class="glossterm" href="#nibfile"><em class="glossterm">nibfile</em></a> created 4843 4845 with 4844 Apple's <a href="#InterfaceBuilder"><em class="glossterm">InterfaceBuilder</em></a>4846 Apple's <a class="glossterm" href="#InterfaceBuilder"><em class="glossterm">InterfaceBuilder</em></a> 4845 4847 application. <code class="code">BUILD-APPLICATION</code> copies each 4846 4848 nibfile into the appropriate place in the application bundle, … … 4858 4860 <dd> 4859 4861 <p>The name of 4860 the <a href="#nibfile"><em class="glossterm">nibfile</em></a> to load4862 the <a class="glossterm" href="#nibfile"><em class="glossterm">nibfile</em></a> to load 4861 4863 initially when launching. The user-interface defined in this 4862 4864 nibfile becomes the application's main interface. You must … … 5054 5056 <dt> 5055 5057 <span class="sect2"> 5056 <a href="#id 466949">7.3.2. As of August 2003:</a>5058 <a href="#id356525">7.3.2. As of August 2003:</a> 5057 5059 </span> 5058 5060 </dt> … … 5305 5307 <div> 5306 5308 <div> 5307 <h3 class="title"><a id="id 466949"></a>7.3.2. As of August 2003:</h3>5309 <h3 class="title"><a id="id356525"></a>7.3.2. As of August 2003:</h3> 5308 5310 </div> 5309 5311 </div> … … 5748 5750 <br></br> 5749 5751 <code> 5750 <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">all-processes</strong></span> => result5752 <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>all-processes</strong></span> => result 5751 5753 </code> 5752 5754 </div> … … 5757 5759 <div> 5758 5760 <div class="refsect1" lang="en" xml:lang="en"> 5759 <a xmlns="http://www.w3.org/1999/xhtml" id="id 442728"></a>5761 <a xmlns="http://www.w3.org/1999/xhtml" id="id399273"></a> 5760 5762 <div class="header">Values:</div> 5761 5763 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">result</span></i>---a list of all lisp processes (threads) … … 5763 5765 </div> 5764 5766 <div class="refsect1" lang="en" xml:lang="en"> 5765 <a xmlns="http://www.w3.org/1999/xhtml" id="id 425580"></a>5767 <a xmlns="http://www.w3.org/1999/xhtml" id="id399299"></a> 5766 5768 <div class="header">Description:</div> 5767 5769 <p xmlns="http://www.w3.org/1999/xhtml">Returns a list of all lisp processes (threads) known … … 5775 5777 </div> 5776 5778 <div class="refsect1" lang="en" xml:lang="en"> 5777 <a xmlns="http://www.w3.org/1999/xhtml" id="id 455035"></a>5779 <a xmlns="http://www.w3.org/1999/xhtml" id="id399314"></a> 5778 5780 <div class="header">See Also:</div> 5779 5781 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"> 5780 <a href="#v_current-process" title="Variable *CURRENT-PROCESS*">5782 <a class="xref" href="#v_current-process" title="Variable *CURRENT-PROCESS*"> 5781 5783 <b xmlns="http://www.w3.org/TR/xhtml1/transitional">*current-process*</b> 5782 5784 </a> … … 5791 5793 <br></br> 5792 5794 <code> 5793 <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">make-process</strong></span>5795 <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>make-process</strong></span> 5794 5796 name &key 5795 5797 persistent priority class stack-size vstack-size … … 5803 5805 <div> 5804 5806 <div class="refsect1" lang="en" xml:lang="en"> 5805 <a xmlns="http://www.w3.org/1999/xhtml" id="id 464285"></a>5807 <a xmlns="http://www.w3.org/1999/xhtml" id="id399383"></a> 5806 5808 <div class="header">Arguments and Values:</div> 5807 5809 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">name</span></i>---a string, used to identify the process.</p> … … 5842 5844 </div> 5843 5845 <div class="refsect1" lang="en" xml:lang="en"> 5844 <a xmlns="http://www.w3.org/1999/xhtml" id="id 446912"></a>5846 <a xmlns="http://www.w3.org/1999/xhtml" id="id399571"></a> 5845 5847 <div class="header">Description:</div> 5846 5848 <p xmlns="http://www.w3.org/1999/xhtml">Creates and returns a new lisp process (thread) with the … … 5849 5851 <span class="emphasis"><em>preset</em></span> (given 5850 5852 an initial function to run, as by 5851 <a href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>) and5853 <a class="xref" href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>) and 5852 5854 <span class="emphasis"><em>enabled</em></span> 5853 (allowed to execute, as by <a href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a>)5855 (allowed to execute, as by <a class="xref" href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a>) 5854 5856 before it's able to actually do anything.</p> 5855 5857 <p xmlns="http://www.w3.org/1999/xhtml">If <em class="varname">valueform</em> is a function, it is … … 5863 5865 </div> 5864 5866 <div class="refsect1" lang="en" xml:lang="en"> 5865 <a xmlns="http://www.w3.org/1999/xhtml" id="id 429285"></a>5867 <a xmlns="http://www.w3.org/1999/xhtml" id="id399624"></a> 5866 5868 <div class="header">See Also:</div> 5867 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>, <a href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a>, <ahref="#f_process-run-function" title="Function PROCESS-RUN-FUNCTION"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-run-function</b></a></span>5869 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>, <a class="xref" href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a>, <a class="xref" href="#f_process-run-function" title="Function PROCESS-RUN-FUNCTION"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-run-function</b></a></span> 5868 5870 </div> 5869 5871 </div> … … 5874 5876 <strong>[Function]</strong> 5875 5877 <br></br> 5876 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-suspend</strong></span> process5878 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-suspend</strong></span> process 5877 5879 => result</code> 5878 5880 </div> … … 5882 5884 <div> 5883 5885 <div class="refsect1" lang="en" xml:lang="en"> 5884 <a xmlns="http://www.w3.org/1999/xhtml" id="id 426934"></a>5886 <a xmlns="http://www.w3.org/1999/xhtml" id="id399702"></a> 5885 5887 <div class="header">Arguments and Values:</div> 5886 5888 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> … … 5888 5890 and is now suspended; NIL otherwise. That is, T if 5889 5891 <em xmlns="http://www.w3.org/1999/xhtml" class="varname">process</em>'s 5890 <a xmlns="http://www.w3.org/1999/xhtml" href="#f_process-suspend-count" title="Function PROCESS-SUSPEND-COUNT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend-count</b></a>5892 <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#f_process-suspend-count" title="Function PROCESS-SUSPEND-COUNT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend-count</b></a> 5891 5893 transitioned from 0 to 1.</p> 5892 5894 </div> 5893 5895 <div class="refsect1" lang="en" xml:lang="en"> 5894 <a xmlns="http://www.w3.org/1999/xhtml" id="id 482610"></a>5896 <a xmlns="http://www.w3.org/1999/xhtml" id="id399756"></a> 5895 5897 <div class="header">Description:</div> 5896 5898 <p xmlns="http://www.w3.org/1999/xhtml">Suspends <em class="varname">process</em>, preventing it from … … 5902 5904 <p xmlns="http://www.w3.org/1999/xhtml"> 5903 5905 Each 5904 call to <span ><strong class="function">process-suspend</strong></span> must be reversed by5905 a matching call to <a href="#f_process-resume" title="Function PROCESS-RESUME"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-resume</b></a>5906 call to <span class="function"><strong>process-suspend</strong></span> must be reversed by 5907 a matching call to <a class="xref" href="#f_process-resume" title="Function PROCESS-RESUME"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-resume</b></a> 5906 5908 before <em class="varname">process</em> is able to run. What 5907 <span ><strong class="function">process-suspend</strong></span> actually does is increment5908 the <a href="#f_process-suspend-count" title="Function PROCESS-SUSPEND-COUNT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend-count</b></a> of5909 <span class="function"><strong>process-suspend</strong></span> actually does is increment 5910 the <a class="xref" href="#f_process-suspend-count" title="Function PROCESS-SUSPEND-COUNT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend-count</b></a> of 5909 5911 <em class="varname">process</em>. 5910 5912 </p> … … 5914 5916 </div> 5915 5917 <div class="refsect1" lang="en" xml:lang="en"> 5916 <a xmlns="http://www.w3.org/1999/xhtml" id="id 439814"></a>5918 <a xmlns="http://www.w3.org/1999/xhtml" id="id399812"></a> 5917 5919 <div class="header">See Also:</div> 5918 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_process-resume" title="Function PROCESS-RESUME"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-resume</b></a>, <ahref="#f_process-suspend-count" title="Function PROCESS-SUSPEND-COUNT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend-count</b></a></span>5919 </div> 5920 <div class="refsect1" lang="en" xml:lang="en"> 5921 <a xmlns="http://www.w3.org/1999/xhtml" id="id 463502"></a>5920 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-resume" title="Function PROCESS-RESUME"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-resume</b></a>, <a class="xref" href="#f_process-suspend-count" title="Function PROCESS-SUSPEND-COUNT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend-count</b></a></span> 5921 </div> 5922 <div class="refsect1" lang="en" xml:lang="en"> 5923 <a xmlns="http://www.w3.org/1999/xhtml" id="id399837"></a> 5922 5924 <div class="header">Notes:</div> 5923 <p xmlns="http://www.w3.org/1999/xhtml"><span ><strong class="function">process-suspend</strong></span> was previously called5924 <span ><strong class="function">process-disable</strong></span>.5925 <a href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a>5925 <p xmlns="http://www.w3.org/1999/xhtml"><span class="function"><strong>process-suspend</strong></span> was previously called 5926 <span class="function"><strong>process-disable</strong></span>. 5927 <a class="xref" href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a> 5926 5928 now names a function for which there is no 5927 obvious inverse, so <span ><strong class="function">process-disable</strong></span>5929 obvious inverse, so <span class="function"><strong>process-disable</strong></span> 5928 5930 is no longer 5929 5931 defined.</p> … … 5936 5938 <strong>[Function]</strong> 5937 5939 <br></br> 5938 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-resume</strong></span> process5940 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-resume</strong></span> process 5939 5941 => result</code> 5940 5942 </div> … … 5945 5947 <div> 5946 5948 <div class="refsect1" lang="en" xml:lang="en"> 5947 <a xmlns="http://www.w3.org/1999/xhtml" id="id 451272"></a>5949 <a xmlns="http://www.w3.org/1999/xhtml" id="id399918"></a> 5948 5950 <div class="header">Arguments and Values:</div> 5949 5951 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> … … 5951 5953 and is now runnable; NIL otherwise. That is, T if 5952 5954 <em xmlns="http://www.w3.org/1999/xhtml" class="varname">process</em>'s 5953 <a xmlns="http://www.w3.org/1999/xhtml" href="#f_process-suspend-count" title="Function PROCESS-SUSPEND-COUNT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend-count</b></a>5955 <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#f_process-suspend-count" title="Function PROCESS-SUSPEND-COUNT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend-count</b></a> 5954 5956 transitioned from to 0. 5955 5957 </p> 5956 5958 </div> 5957 5959 <div class="refsect1" lang="en" xml:lang="en"> 5958 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504118"></a>5960 <a xmlns="http://www.w3.org/1999/xhtml" id="id399972"></a> 5959 5961 <div class="header">Description:</div> 5960 5962 <p xmlns="http://www.w3.org/1999/xhtml">Undoes the effect of a previous call to 5961 <a href="#f_process-suspend" title="Function PROCESS-SUSPEND"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend</b></a>; if5963 <a class="xref" href="#f_process-suspend" title="Function PROCESS-SUSPEND"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend</b></a>; if 5962 5964 all such calls are undone, makes the process runnable. Has no 5963 5965 effect if the process is not suspended. What 5964 <span ><strong class="function">process-resume</strong></span> actually does is decrement5965 the <a href="#f_process-suspend-count" title="Function PROCESS-SUSPEND-COUNT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend-count</b></a> of5966 <span class="function"><strong>process-resume</strong></span> actually does is decrement 5967 the <a class="xref" href="#f_process-suspend-count" title="Function PROCESS-SUSPEND-COUNT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend-count</b></a> of 5966 5968 <em class="varname">process</em>, to a minimum of 0.</p> 5967 5969 </div> 5968 5970 <div class="refsect1" lang="en" xml:lang="en"> 5969 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504143"></a>5971 <a xmlns="http://www.w3.org/1999/xhtml" id="id400003"></a> 5970 5972 <div class="header">See Also:</div> 5971 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_process-suspend" title="Function PROCESS-SUSPEND"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend</b></a>, <ahref="#f_process-suspend-count" title="Function PROCESS-SUSPEND-COUNT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend-count</b></a></span>5972 </div> 5973 <div class="refsect1" lang="en" xml:lang="en"> 5974 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504162"></a>5973 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-suspend" title="Function PROCESS-SUSPEND"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend</b></a>, <a class="xref" href="#f_process-suspend-count" title="Function PROCESS-SUSPEND-COUNT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend-count</b></a></span> 5974 </div> 5975 <div class="refsect1" lang="en" xml:lang="en"> 5976 <a xmlns="http://www.w3.org/1999/xhtml" id="id400028"></a> 5975 5977 <div class="header">Notes:</div> 5976 5978 <p xmlns="http://www.w3.org/1999/xhtml"> 5977 5979 This was previously called PROCESS-ENABLE; 5978 <a href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a> now does something slightly5980 <a class="xref" href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a> now does something slightly 5979 5981 different. 5980 5982 </p> … … 5988 5990 <br></br> 5989 5991 <code> 5990 <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-suspend-count</strong></span>5992 <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-suspend-count</strong></span> 5991 5993 process => result 5992 5994 </code> … … 5998 6000 <div> 5999 6001 <div class="refsect1" lang="en" xml:lang="en"> 6000 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504213"></a>6002 <a xmlns="http://www.w3.org/1999/xhtml" id="id400093"></a> 6001 6003 <div class="header">Arguments and Values:</div> 6002 6004 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> 6003 6005 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">result</span></i>---The number of "outstanding" 6004 <a xmlns="http://www.w3.org/1999/xhtml" href="#f_process-suspend" title="Function PROCESS-SUSPEND"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend</b></a> calls on6006 <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#f_process-suspend" title="Function PROCESS-SUSPEND"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend</b></a> calls on 6005 6007 <em xmlns="http://www.w3.org/1999/xhtml" class="varname">process</em>, or NIL if 6006 6008 <em xmlns="http://www.w3.org/1999/xhtml" class="varname">process</em> has expired. … … 6008 6010 </div> 6009 6011 <div class="refsect1" lang="en" xml:lang="en"> 6010 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504257"></a>6012 <a xmlns="http://www.w3.org/1999/xhtml" id="id400147"></a> 6011 6013 <div class="header">Description:</div> 6012 <p xmlns="http://www.w3.org/1999/xhtml">An "outstanding" <a href="#f_process-suspend" title="Function PROCESS-SUSPEND"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend</b></a> call6014 <p xmlns="http://www.w3.org/1999/xhtml">An "outstanding" <a class="xref" href="#f_process-suspend" title="Function PROCESS-SUSPEND"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend</b></a> call 6013 6015 is one which has not yet been reversed by a call to 6014 <a href="#f_process-resume" title="Function PROCESS-RESUME"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-resume</b></a>. A process expires when6016 <a class="xref" href="#f_process-resume" title="Function PROCESS-RESUME"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-resume</b></a>. A process expires when 6015 6017 its initial function returns, although it may later be 6016 6018 reset.</p> 6017 6019 <p xmlns="http://www.w3.org/1999/xhtml">A process is <span class="emphasis"><em>runnable</em></span> when it has a 6018 <span ><strong class="function">process-suspend-count</strong></span> of 0, has been6019 preset as by <a href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>, and has been6020 enabled as by <a href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a>. Newly-created6021 processes have a <span ><strong class="function">process-suspend-count</strong></span> of6020 <span class="function"><strong>process-suspend-count</strong></span> of 0, has been 6021 preset as by <a class="xref" href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>, and has been 6022 enabled as by <a class="xref" href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a>. Newly-created 6023 processes have a <span class="function"><strong>process-suspend-count</strong></span> of 6022 6024 0.</p> 6023 6025 </div> 6024 6026 <div class="refsect1" lang="en" xml:lang="en"> 6025 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504296"></a>6027 <a xmlns="http://www.w3.org/1999/xhtml" id="id400197"></a> 6026 6028 <div class="header">See Also:</div> 6027 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_process-suspend" title="Function PROCESS-SUSPEND"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend</b></a>, <ahref="#f_process-resume" title="Function PROCESS-RESUME"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-resume</b></a></span>6029 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-suspend" title="Function PROCESS-SUSPEND"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-suspend</b></a>, <a class="xref" href="#f_process-resume" title="Function PROCESS-RESUME"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-resume</b></a></span> 6028 6030 </div> 6029 6031 </div> … … 6034 6036 <strong>[Function]</strong> 6035 6037 <br></br> 6036 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-preset</strong></span>6038 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-preset</strong></span> 6037 6039 process function <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&rest</em> args 6038 6040 => result</code> … … 6044 6046 <div> 6045 6047 <div class="refsect1" lang="en" xml:lang="en"> 6046 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504353"></a>6048 <a xmlns="http://www.w3.org/1999/xhtml" id="id400273"></a> 6047 6049 <div class="header">Arguments and Values:</div> 6048 6050 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> … … 6055 6057 </div> 6056 6058 <div class="refsect1" lang="en" xml:lang="en"> 6057 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504419"></a>6059 <a xmlns="http://www.w3.org/1999/xhtml" id="id400348"></a> 6058 6060 <div class="header">Description:</div> 6059 6061 <p xmlns="http://www.w3.org/1999/xhtml">Typically used to initialize a newly-created or newly-reset … … 6061 6063 becomes enabled, it will begin execution by 6062 6064 applying <em class="varname">function</em> to <em class="varname">args</em>. 6063 <span ><strong class="function">process-preset</strong></span> does not enable6065 <span class="function"><strong>process-preset</strong></span> does not enable 6064 6066 <em class="varname">process</em>, 6065 although a process must be <span ><strong class="function">process-preset</strong></span>6067 although a process must be <span class="function"><strong>process-preset</strong></span> 6066 6068 before it can be enabled. Processes are normally enabled by 6067 <a href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a>.6069 <a class="xref" href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a>. 6068 6070 </p> 6069 6071 </div> 6070 6072 <div class="refsect1" lang="en" xml:lang="en"> 6071 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504456"></a>6073 <a xmlns="http://www.w3.org/1999/xhtml" id="id400392"></a> 6072 6074 <div class="header">See Also:</div> 6073 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_make-process" title="Function MAKE-PROCESS"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-process</b></a>, <a href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a>, <ahref="#f_process-run-function" title="Function PROCESS-RUN-FUNCTION"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-run-function</b></a></span>6075 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-process" title="Function MAKE-PROCESS"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-process</b></a>, <a class="xref" href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a>, <a class="xref" href="#f_process-run-function" title="Function PROCESS-RUN-FUNCTION"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-run-function</b></a></span> 6074 6076 </div> 6075 6077 </div> … … 6080 6082 <strong>[Function]</strong> 6081 6083 <br></br> 6082 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-enable</strong></span>6084 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-enable</strong></span> 6083 6085 process <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> timeout 6084 6086 </code> … … 6090 6092 <div> 6091 6093 <div class="refsect1" lang="en" xml:lang="en"> 6092 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504517"></a>6094 <a xmlns="http://www.w3.org/1999/xhtml" id="id400474"></a> 6093 6095 <div class="header">Arguments and Values:</div> 6094 6096 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> 6095 6097 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">timeout</span></i>---a time interval in seconds. May be any 6096 non-negative real number the <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">floor</strong></span> of6098 non-negative real number the <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>floor</strong></span> of 6097 6099 which fits in 32 bits. The default is 1.</p> 6098 6100 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">result</span></i>---undefined.</p> 6099 6101 </div> 6100 6102 <div class="refsect1" lang="en" xml:lang="en"> 6101 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504570"></a>6103 <a xmlns="http://www.w3.org/1999/xhtml" id="id400537"></a> 6102 6104 <div class="header">Description:</div> 6103 6105 <p xmlns="http://www.w3.org/1999/xhtml">Tries to begin the execution of <em class="varname">process</em>. 6104 6106 An error is signaled if <em class="varname">process</em> has never 6105 been <a href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>. Otherwise,6107 been <a class="xref" href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>. Otherwise, 6106 6108 <em class="varname">process</em> invokes its initial function. 6107 6109 </p> 6108 <p xmlns="http://www.w3.org/1999/xhtml"><span ><strong class="function">process-enable</strong></span> attempts to6110 <p xmlns="http://www.w3.org/1999/xhtml"><span class="function"><strong>process-enable</strong></span> attempts to 6109 6111 synchronize with <em class="varname">process</em>, which is presumed 6110 6112 to be reset or in the act of resetting itself. If this attempt … … 6116 6118 </div> 6117 6119 <div class="refsect1" lang="en" xml:lang="en"> 6118 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504614"></a>6120 <a xmlns="http://www.w3.org/1999/xhtml" id="id400585"></a> 6119 6121 <div class="header">See Also:</div> 6120 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_make-process" title="Function MAKE-PROCESS"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-process</b></a>, <a href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>, <ahref="#f_process-run-function" title="Function PROCESS-RUN-FUNCTION"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-run-function</b></a></span>6121 </div> 6122 <div class="refsect1" lang="en" xml:lang="en"> 6123 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504637"></a>6122 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-process" title="Function MAKE-PROCESS"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-process</b></a>, <a class="xref" href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>, <a class="xref" href="#f_process-run-function" title="Function PROCESS-RUN-FUNCTION"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-run-function</b></a></span> 6123 </div> 6124 <div class="refsect1" lang="en" xml:lang="en"> 6125 <a xmlns="http://www.w3.org/1999/xhtml" id="id400616"></a> 6124 6126 <div class="header">Notes:</div> 6125 6127 <p xmlns="http://www.w3.org/1999/xhtml">It would be nice to have more discussion of what it means … … 6133 6135 <strong>[Function]</strong> 6134 6136 <br></br> 6135 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-run-function</strong></span>6137 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-run-function</strong></span> 6136 6138 process-specifier function <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&rest</em> args => process</code> 6137 6139 </div> … … 6142 6144 <div> 6143 6145 <div class="refsect1" lang="en" xml:lang="en"> 6144 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504731"></a>6146 <a xmlns="http://www.w3.org/1999/xhtml" id="id400731"></a> 6145 6147 <div class="header">Arguments and Values:</div> 6146 6148 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">name</span></i>---a string, used to identify the process. 6147 Passed to <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">make-process</strong></span>.</p>6149 Passed to <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>make-process</strong></span>.</p> 6148 6150 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">function</span></i>---a function, designated by itself or by a symbol 6149 6151 which names it. Passed to 6150 <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">preset-process</strong></span>.6152 <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>preset-process</strong></span>. 6151 6153 </p> 6152 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">persistent</span></i>---a boolean, passed to <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">make-process</strong></span>.6154 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">persistent</span></i>---a boolean, passed to <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>make-process</strong></span>. 6153 6155 </p> 6154 6156 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">priority</span></i>---ignored.</p> 6155 6157 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">class</span></i>---a subclass of CCL:PROCESS. Passed to 6156 <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">make-process</strong></span>.</p>6158 <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>make-process</strong></span>.</p> 6157 6159 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">stack-size</span></i>---a size, in bytes. Passed to 6158 <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">make-process</strong></span>.</p>6160 <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>make-process</strong></span>.</p> 6159 6161 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">vstack-size</span></i>---a size, in bytes. Passed to 6160 <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">make-process</strong></span>.</p>6162 <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>make-process</strong></span>.</p> 6161 6163 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">tstack-size</span></i>---a size, in bytes. Passed to 6162 <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">make-process</strong></span>.</p>6164 <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>make-process</strong></span>.</p> 6163 6165 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---the newly-created process.</p> 6164 6166 </div> 6165 6167 <div class="refsect1" lang="en" xml:lang="en"> 6166 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504882"></a>6168 <a xmlns="http://www.w3.org/1999/xhtml" id="id400920"></a> 6167 6169 <div class="header">Description:</div> 6168 6170 <p xmlns="http://www.w3.org/1999/xhtml">Creates a lisp process (thread) via 6169 <a href="#f_make-process" title="Function MAKE-PROCESS"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-process</b></a>,6170 presets it via <a href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>, and6171 enables it via <a href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a>. This means6171 <a class="xref" href="#f_make-process" title="Function MAKE-PROCESS"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-process</b></a>, 6172 presets it via <a class="xref" href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>, and 6173 enables it via <a class="xref" href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a>. This means 6172 6174 that <em class="varname">process</em> will immediately begin to 6173 6175 execute. 6174 <span ><strong class="function">process-run-function</strong></span> is6176 <span class="function"><strong>process-run-function</strong></span> is 6175 6177 the simplest way to create and run a process. 6176 6178 </p> 6177 6179 </div> 6178 6180 <div class="refsect1" lang="en" xml:lang="en"> 6179 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504909"></a>6181 <a xmlns="http://www.w3.org/1999/xhtml" id="id400955"></a> 6180 6182 <div class="header">See Also:</div> 6181 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_make-process" title="Function MAKE-PROCESS"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-process</b></a>, <a href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>, <ahref="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a></span>6183 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-process" title="Function MAKE-PROCESS"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-process</b></a>, <a class="xref" href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>, <a class="xref" href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a></span> 6182 6184 </div> 6183 6185 </div> … … 6188 6190 <strong>[Function]</strong> 6189 6191 <br></br> 6190 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-interrupt</strong></span>6192 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-interrupt</strong></span> 6191 6193 process function <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&rest</em> args => result</code> 6192 6194 </div> … … 6198 6200 <div> 6199 6201 <div class="refsect1" lang="en" xml:lang="en"> 6200 <a xmlns="http://www.w3.org/1999/xhtml" id="id 504972"></a>6202 <a xmlns="http://www.w3.org/1999/xhtml" id="id412921"></a> 6201 6203 <div class="header">Arguments and Values:</div> 6202 6204 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> … … 6207 6209 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">result</span></i>---the result of applying <em xmlns="http://www.w3.org/1999/xhtml" class="varname">function</em> 6208 6210 to <em xmlns="http://www.w3.org/1999/xhtml" class="varname">args</em> if <em xmlns="http://www.w3.org/1999/xhtml" class="varname">process</em> 6209 is the <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">current-process</strong></span>, otherwise6211 is the <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>current-process</strong></span>, otherwise 6210 6212 NIL.</p> 6211 6213 </div> 6212 6214 <div class="refsect1" lang="en" xml:lang="en"> 6213 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505050"></a>6215 <a xmlns="http://www.w3.org/1999/xhtml" id="id413000"></a> 6214 6216 <div class="header">Description:</div> 6215 6217 <p xmlns="http://www.w3.org/1999/xhtml">Arranges for <em class="varname">process</em> … … 6222 6224 <p xmlns="http://www.w3.org/1999/xhtml"><em class="varname">process</em> must be in an enabled state in 6223 6225 order to respond 6224 to a <span ><strong class="function">process-interrupt</strong></span> request. It's6226 to a <span class="function"><strong>process-interrupt</strong></span> request. It's 6225 6227 perfectly legal for a process to call 6226 <span ><strong class="function">process-interrupt</strong></span> on itself.</p>6227 <p xmlns="http://www.w3.org/1999/xhtml"><span ><strong class="function">process-interrupt</strong></span>6228 <span class="function"><strong>process-interrupt</strong></span> on itself.</p> 6229 <p xmlns="http://www.w3.org/1999/xhtml"><span class="function"><strong>process-interrupt</strong></span> 6228 6230 uses asynchronous POSIX signals to interrupt threads. If the 6229 6231 thread being interrupted is executing lisp code, it can … … 6242 6244 </div> 6243 6245 <div class="refsect1" lang="en" xml:lang="en"> 6244 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505119"></a>6246 <a xmlns="http://www.w3.org/1999/xhtml" id="id413067"></a> 6245 6247 <div class="header">See Also:</div> 6246 6248 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"> 6247 <a href="#m_without-interrupts" title="Macro WITHOUT-INTERRUPTS">6249 <a class="xref" href="#m_without-interrupts" title="Macro WITHOUT-INTERRUPTS"> 6248 6250 <b xmlns="http://www.w3.org/TR/xhtml1/transitional">without-interrupts</b> 6249 6251 </a> … … 6251 6253 </div> 6252 6254 <div class="refsect1" lang="en" xml:lang="en"> 6253 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505134"></a>6255 <a xmlns="http://www.w3.org/1999/xhtml" id="id413084"></a> 6254 6256 <div class="header">Notes:</div> 6255 6257 <p xmlns="http://www.w3.org/1999/xhtml">It would probably be better for <em class="varname">result</em> … … 6257 6259 </p> 6258 6260 <p xmlns="http://www.w3.org/1999/xhtml"> 6259 <span ><strong class="function">Process-interrupt</strong></span> works by sending signals6261 <span class="function"><strong>Process-interrupt</strong></span> works by sending signals 6260 6262 between threads, via the C function 6261 <span ><strong class="function">#_pthread_signal</strong></span>. It could be argued6263 <span class="function"><strong>#_pthread_signal</strong></span>. It could be argued 6262 6264 that it should be done in one of several possible other ways 6263 6265 under … … 6281 6283 <div> 6282 6284 <div class="refsect1" lang="en" xml:lang="en"> 6283 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505189"></a>6285 <a xmlns="http://www.w3.org/1999/xhtml" id="id413143"></a> 6284 6286 <div class="header">Value Type:</div> 6285 6287 <p xmlns="http://www.w3.org/1999/xhtml">A lisp process (thread).</p> 6286 6288 </div> 6287 6289 <div class="refsect1" lang="en" xml:lang="en"> 6288 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505198"></a>6290 <a xmlns="http://www.w3.org/1999/xhtml" id="id413152"></a> 6289 6291 <div class="header">Initial Value:</div> 6290 6292 <p xmlns="http://www.w3.org/1999/xhtml">Bound separately in each process, to that process itself. … … 6292 6294 </div> 6293 6295 <div class="refsect1" lang="en" xml:lang="en"> 6294 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505209"></a>6296 <a xmlns="http://www.w3.org/1999/xhtml" id="id413162"></a> 6295 6297 <div class="header">Description:</div> 6296 6298 <p xmlns="http://www.w3.org/1999/xhtml">Used when lisp code needs to find out what process it is … … 6298 6300 </div> 6299 6301 <div class="refsect1" lang="en" xml:lang="en"> 6300 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505220"></a>6302 <a xmlns="http://www.w3.org/1999/xhtml" id="id413173"></a> 6301 6303 <div class="header">See Also:</div> 6302 6304 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"> 6303 <a href="#f_all-processes" title="Function ALL-PROCESSES">6305 <a class="xref" href="#f_all-processes" title="Function ALL-PROCESSES"> 6304 6306 <b xmlns="http://www.w3.org/TR/xhtml1/transitional">all-processes</b> 6305 6307 </a> … … 6313 6315 <strong>[Function]</strong> 6314 6316 <br></br> 6315 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-reset</strong></span>6317 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-reset</strong></span> 6316 6318 process <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> kill-option => result</code> 6317 6319 </div> … … 6322 6324 <div> 6323 6325 <div class="refsect1" lang="en" xml:lang="en"> 6324 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505273"></a>6326 <a xmlns="http://www.w3.org/1999/xhtml" id="id413235"></a> 6325 6327 <div class="header">Arguments and Values:</div> 6326 6328 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> … … 6329 6331 </div> 6330 6332 <div class="refsect1" lang="en" xml:lang="en"> 6331 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505321"></a>6333 <a xmlns="http://www.w3.org/1999/xhtml" id="id413283"></a> 6332 6334 <div class="header">Description:</div> 6333 6335 <p xmlns="http://www.w3.org/1999/xhtml">Causes <em class="varname">process</em> to cleanly exit … … 6335 6337 is true, <em class="varname">process</em> then exits. Otherwise, it 6336 6338 enters a state where it can be 6337 <a href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>. This6339 <a class="xref" href="#f_process-preset" title="Function PROCESS-PRESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-preset</b></a>. This 6338 6340 is implemented by signaling a condition of type PROCESS-RESET; 6339 6341 user-defined condition handlers should generally refrain from … … 6345 6347 which has either entered the limbo of the reset state or exited 6346 6348 has few ways of communicating either fact. 6347 <a href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a>6349 <a class="xref" href="#f_process-enable" title="Function PROCESS-ENABLE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-enable</b></a> 6348 6350 can reliably determine when a process has entered 6349 6351 the "limbo of the reset state", but can't predict how long the 6350 6352 clean exit from ongoing computation might take: that depends on 6351 the behavior of <span ><strong class="function">unwind-protect</strong></span> cleanup6353 the behavior of <span class="function"><strong>unwind-protect</strong></span> cleanup 6352 6354 forms, and of the OS scheduler.</p> 6353 6355 <p xmlns="http://www.w3.org/1999/xhtml">Resetting a process other than 6354 <a href="#v_current-process" title="Variable *CURRENT-PROCESS*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*current-process*</b></a> involves the6355 use of <a href="#f_process-interrupt" title="Function PROCESS-INTERRUPT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-interrupt</b></a>.</p>6356 </div> 6357 <div class="refsect1" lang="en" xml:lang="en"> 6358 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505383"></a>6356 <a class="xref" href="#v_current-process" title="Variable *CURRENT-PROCESS*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*current-process*</b></a> involves the 6357 use of <a class="xref" href="#f_process-interrupt" title="Function PROCESS-INTERRUPT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-interrupt</b></a>.</p> 6358 </div> 6359 <div class="refsect1" lang="en" xml:lang="en"> 6360 <a xmlns="http://www.w3.org/1999/xhtml" id="id413344"></a> 6359 6361 <div class="header">See Also:</div> 6360 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_process-kill" title="Function PROCESS-KILL"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-kill</b></a>, <ahref="#f_process-abort" title="Function PROCESS-ABORT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-abort</b></a></span>6362 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-kill" title="Function PROCESS-KILL"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-kill</b></a>, <a class="xref" href="#f_process-abort" title="Function PROCESS-ABORT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-abort</b></a></span> 6361 6363 </div> 6362 6364 </div> … … 6367 6369 <strong>[Function]</strong> 6368 6370 <br></br> 6369 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-kill</strong></span> process6371 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-kill</strong></span> process 6370 6372 => result</code> 6371 6373 </div> … … 6376 6378 <div> 6377 6379 <div class="refsect1" lang="en" xml:lang="en"> 6378 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505437"></a>6380 <a xmlns="http://www.w3.org/1999/xhtml" id="id413408"></a> 6379 6381 <div class="header">Arguments and Values:</div> 6380 6382 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> … … 6382 6384 </div> 6383 6385 <div class="refsect1" lang="en" xml:lang="en"> 6384 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505472"></a>6386 <a xmlns="http://www.w3.org/1999/xhtml" id="id413443"></a> 6385 6387 <div class="header">Description:</div> 6386 6388 <p xmlns="http://www.w3.org/1999/xhtml">Entirely equivalent to calling … … 6389 6391 </div> 6390 6392 <div class="refsect1" lang="en" xml:lang="en"> 6391 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505488"></a>6393 <a xmlns="http://www.w3.org/1999/xhtml" id="id413458"></a> 6392 6394 <div class="header">See Also:</div> 6393 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_process-reset" title="Function PROCESS-RESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-reset</b></a>, <ahref="#f_process-abort" title="Function PROCESS-ABORT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-abort</b></a></span>6395 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-reset" title="Function PROCESS-RESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-reset</b></a>, <a class="xref" href="#f_process-abort" title="Function PROCESS-ABORT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-abort</b></a></span> 6394 6396 </div> 6395 6397 </div> … … 6400 6402 <strong>[Function]</strong> 6401 6403 <br></br> 6402 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-abort</strong></span> process6404 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-abort</strong></span> process 6403 6405 <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> condition 6404 6406 => NIL</code> … … 6411 6413 <div> 6412 6414 <div class="refsect1" lang="en" xml:lang="en"> 6413 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505548"></a>6415 <a xmlns="http://www.w3.org/1999/xhtml" id="id413530"></a> 6414 6416 <div class="header">Arguments and Values:</div> 6415 6417 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">process</span></i>---a lisp process (thread).</p> … … 6417 6419 </div> 6418 6420 <div class="refsect1" lang="en" xml:lang="en"> 6419 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505583"></a>6421 <a xmlns="http://www.w3.org/1999/xhtml" id="id413565"></a> 6420 6422 <div class="header">Description:</div> 6421 6423 <p xmlns="http://www.w3.org/1999/xhtml">Entirely equivalent to calling 6422 (<a href="#f_process-interrupt" title="Function PROCESS-INTERRUPT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-interrupt</b></a> <em class="varname">process</em>6423 (<span ><strong class="function">lambda</strong></span> ()6424 (<span ><strong class="function">abort</strong></span> <em class="varname">condition</em>))).6424 (<a class="xref" href="#f_process-interrupt" title="Function PROCESS-INTERRUPT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-interrupt</b></a> <em class="varname">process</em> 6425 (<span class="function"><strong>lambda</strong></span> () 6426 (<span class="function"><strong>abort</strong></span> <em class="varname">condition</em>))). 6425 6427 Causes <em class="varname">process</em> to transfer control to the 6426 applicable handler or restart for <span ><strong class="function">abort</strong></span>.</p>6428 applicable handler or restart for <span class="function"><strong>abort</strong></span>.</p> 6427 6429 <p xmlns="http://www.w3.org/1999/xhtml">If <em class="varname">condition</em> is non-NIL, 6428 <span ><strong class="function">process-abort</strong></span> does not consider any6430 <span class="function"><strong>process-abort</strong></span> does not consider any 6429 6431 handlers which are explicitly bound to conditions other than 6430 6432 <em class="varname">condition</em>.</p> 6431 6433 </div> 6432 6434 <div class="refsect1" lang="en" xml:lang="en"> 6433 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505631"></a>6435 <a xmlns="http://www.w3.org/1999/xhtml" id="id413620"></a> 6434 6436 <div class="header">See Also:</div> 6435 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_process-reset" title="Function PROCESS-RESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-reset</b></a>, <ahref="#f_process-kill" title="Function PROCESS-KILL"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-kill</b></a></span>6437 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-reset" title="Function PROCESS-RESET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-reset</b></a>, <a class="xref" href="#f_process-kill" title="Function PROCESS-KILL"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-kill</b></a></span> 6436 6438 </div> 6437 6439 </div> … … 6450 6452 <div> 6451 6453 <div class="refsect1" lang="en" xml:lang="en"> 6452 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505676"></a>6454 <a xmlns="http://www.w3.org/1999/xhtml" id="id413672"></a> 6453 6455 <div class="header">Value Type:</div> 6454 6456 <p xmlns="http://www.w3.org/1999/xhtml">A positive integer.</p> 6455 6457 </div> 6456 6458 <div class="refsect1" lang="en" xml:lang="en"> 6457 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505685"></a>6459 <a xmlns="http://www.w3.org/1999/xhtml" id="id413681"></a> 6458 6460 <div class="header">Initial Value:</div> 6459 6461 <p xmlns="http://www.w3.org/1999/xhtml">The clock resolution of the OS scheduler. Currently, … … 6462 6464 </div> 6463 6465 <div class="refsect1" lang="en" xml:lang="en"> 6464 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505697"></a>6466 <a xmlns="http://www.w3.org/1999/xhtml" id="id413692"></a> 6465 6467 <div class="header">Description:</div> 6466 6468 <p xmlns="http://www.w3.org/1999/xhtml">This value is ordinarily of marginal interest at best, … … 6470 6472 </div> 6471 6473 <div class="refsect1" lang="en" xml:lang="en"> 6472 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505710"></a>6474 <a xmlns="http://www.w3.org/1999/xhtml" id="id413704"></a> 6473 6475 <div class="header">See Also:</div> 6474 6476 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"> 6475 <a href="#f_process-wait-with-timeout" title="Function PROCESS-WAIT-WITH-TIMEOUT">6477 <a class="xref" href="#f_process-wait-with-timeout" title="Function PROCESS-WAIT-WITH-TIMEOUT"> 6476 6478 <b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait-with-timeout</b> 6477 6479 </a> … … 6485 6487 <strong>[Function]</strong> 6486 6488 <br></br> 6487 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-whostate</strong></span> process6489 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-whostate</strong></span> process 6488 6490 => whostate</code> 6489 6491 </div> … … 6494 6496 <div> 6495 6497 <div class="refsect1" lang="en" xml:lang="en"> 6496 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505793"></a>6498 <a xmlns="http://www.w3.org/1999/xhtml" id="id413794"></a> 6497 6499 <div class="header">Description:</div> 6498 6500 <p xmlns="http://www.w3.org/1999/xhtml">This information is primarily for the benefit of … … 6501 6503 and why.</p> 6502 6504 <p xmlns="http://www.w3.org/1999/xhtml">If the process is currently waiting in a call to 6503 <a href="#f_process-wait" title="Function PROCESS-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait</b></a> or6504 <a href="#f_process-wait-with-timeout" title="Function PROCESS-WAIT-WITH-TIMEOUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait-with-timeout</b></a>, its6505 <span ><strong class="function">process-whostate</strong></span> will be the value6505 <a class="xref" href="#f_process-wait" title="Function PROCESS-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait</b></a> or 6506 <a class="xref" href="#f_process-wait-with-timeout" title="Function PROCESS-WAIT-WITH-TIMEOUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait-with-timeout</b></a>, its 6507 <span class="function"><strong>process-whostate</strong></span> will be the value 6506 6508 which was passed to that function as <em class="varname">whostate</em>. 6507 6509 </p> 6508 6510 </div> 6509 6511 <div class="refsect1" lang="en" xml:lang="en"> 6510 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505828"></a>6512 <a xmlns="http://www.w3.org/1999/xhtml" id="id413832"></a> 6511 6513 <div class="header">See Also:</div> 6512 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_process-wait" title="Function PROCESS-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait</b></a>, <a href="#f_process-wait-with-timeout" title="Function PROCESS-WAIT-WITH-TIMEOUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait-with-timeout</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>6513 </div> 6514 <div class="refsect1" lang="en" xml:lang="en"> 6515 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505852"></a>6514 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-wait" title="Function PROCESS-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait</b></a>, <a class="xref" href="#f_process-wait-with-timeout" title="Function PROCESS-WAIT-WITH-TIMEOUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait-with-timeout</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 6515 </div> 6516 <div class="refsect1" lang="en" xml:lang="en"> 6517 <a xmlns="http://www.w3.org/1999/xhtml" id="id413859"></a> 6516 6518 <div class="header">Notes:</div> 6517 6519 <p xmlns="http://www.w3.org/1999/xhtml">This should arguably be SETFable, but doesn't seem to … … 6526 6528 <br></br> 6527 6529 <code> 6528 <span xmlns="http://www.w3.org/1999/xhtml" >6529 <strong class="function">process-allow-schedule</strong>6530 <span xmlns="http://www.w3.org/1999/xhtml" class="function"> 6531 <strong>process-allow-schedule</strong> 6530 6532 </span> 6531 6533 </code> … … 6537 6539 <div> 6538 6540 <div class="refsect1" lang="en" xml:lang="en"> 6539 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505896"></a>6541 <a xmlns="http://www.w3.org/1999/xhtml" id="id413910"></a> 6540 6542 <div class="header">Description:</div> 6541 6543 <p xmlns="http://www.w3.org/1999/xhtml">Advises the OS scheduler that the current thread has nothing … … 6546 6548 </div> 6547 6549 <div class="refsect1" lang="en" xml:lang="en"> 6548 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505911"></a>6550 <a xmlns="http://www.w3.org/1999/xhtml" id="id413923"></a> 6549 6551 <div class="header">See Also:</div> 6550 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>6551 </div> 6552 <div class="refsect1" lang="en" xml:lang="en"> 6553 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505947"></a>6552 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 6553 </div> 6554 <div class="refsect1" lang="en" xml:lang="en"> 6555 <a xmlns="http://www.w3.org/1999/xhtml" id="id413965"></a> 6554 6556 <div class="header">Notes:</div> 6555 6557 <p xmlns="http://www.w3.org/1999/xhtml">This is a holdover from the days of cooperative … … 6564 6566 <strong>[Function]</strong> 6565 6567 <br></br> 6566 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-wait</strong></span>6568 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-wait</strong></span> 6567 6569 whostate function <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&rest</em> args => result</code> 6568 6570 </div> … … 6574 6576 <div> 6575 6577 <div class="refsect1" lang="en" xml:lang="en"> 6576 <a xmlns="http://www.w3.org/1999/xhtml" id="id 505998"></a>6578 <a xmlns="http://www.w3.org/1999/xhtml" id="id414021"></a> 6577 6579 <div class="header">Arguments and Values:</div> 6578 6580 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">whostate</span></i>---a string, which will be the value of 6579 <a xmlns="http://www.w3.org/1999/xhtml" href="#f_process-whostate" title="Function PROCESS-WHOSTATE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-whostate</b></a>6581 <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#f_process-whostate" title="Function PROCESS-WHOSTATE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-whostate</b></a> 6580 6582 while the process is waiting.</p> 6581 6583 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">function</span></i>---a function, designated by itself or by a symbol … … 6587 6589 </div> 6588 6590 <div class="refsect1" lang="en" xml:lang="en"> 6589 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506068"></a>6591 <a xmlns="http://www.w3.org/1999/xhtml" id="id414091"></a> 6590 6592 <div class="header">Description:</div> 6591 6593 <p xmlns="http://www.w3.org/1999/xhtml">Causes the current lisp process (thread) to repeatedly … … 6594 6596 returns NIL. After 6595 6597 each failed call, yields the CPU as if by 6596 <a href="#f_process-allow-schedule" title="Function PROCESS-ALLOW-SCHEDULE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-allow-schedule</b></a>.</p>6598 <a class="xref" href="#f_process-allow-schedule" title="Function PROCESS-ALLOW-SCHEDULE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-allow-schedule</b></a>.</p> 6597 6599 <p xmlns="http://www.w3.org/1999/xhtml"> 6598 As with <a href="#f_process-allow-schedule" title="Function PROCESS-ALLOW-SCHEDULE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-allow-schedule</b></a>, it's almost6600 As with <a class="xref" href="#f_process-allow-schedule" title="Function PROCESS-ALLOW-SCHEDULE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-allow-schedule</b></a>, it's almost 6599 6601 always more efficient to wait for some 6600 6602 specific event to occur; this isn't exactly busy-waiting, but … … 6604 6606 </div> 6605 6607 <div class="refsect1" lang="en" xml:lang="en"> 6606 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506102"></a>6608 <a xmlns="http://www.w3.org/1999/xhtml" id="id414123"></a> 6607 6609 <div class="header">See Also:</div> 6608 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_process-whostate" title="Function PROCESS-WHOSTATE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-whostate</b></a>, <a href="#f_process-wait-with-timeout" title="Function PROCESS-WAIT-WITH-TIMEOUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait-with-timeout</b></a>, <a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>6610 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_process-whostate" title="Function PROCESS-WHOSTATE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-whostate</b></a>, <a class="xref" href="#f_process-wait-with-timeout" title="Function PROCESS-WAIT-WITH-TIMEOUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait-with-timeout</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 6609 6611 </div> 6610 6612 </div> … … 6615 6617 <strong>[Function]</strong> 6616 6618 <br></br> 6617 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-wait-with-timeout</strong></span>6619 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-wait-with-timeout</strong></span> 6618 6620 whostate ticks function args => result</code> 6619 6621 </div> … … 6624 6626 <div> 6625 6627 <div class="refsect1" lang="en" xml:lang="en"> 6626 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506181"></a>6628 <a xmlns="http://www.w3.org/1999/xhtml" id="id414218"></a> 6627 6629 <div class="header">Arguments and Values:</div> 6628 6630 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">whostate</span></i>---a string, which will be the value of 6629 <a xmlns="http://www.w3.org/1999/xhtml" href="#f_process-whostate" title="Function PROCESS-WHOSTATE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-whostate</b></a>6631 <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#f_process-whostate" title="Function PROCESS-WHOSTATE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-whostate</b></a> 6630 6632 while the process is waiting.</p> 6631 6633 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">ticks</span></i>---either a positive integer expressing a duration 6632 in "ticks" (see <a xmlns="http://www.w3.org/1999/xhtml" href="#v_ticks-per-second" title="Variable *TICKS-PER-SECOND*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*ticks-per-second*</b></a>),6634 in "ticks" (see <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#v_ticks-per-second" title="Variable *TICKS-PER-SECOND*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*ticks-per-second*</b></a>), 6633 6635 or NIL.</p> 6634 6636 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">function</span></i>---a function, designated by itself or by a symbol … … 6636 6638 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">args</span></i>---a list of values, appropriate as arguments to 6637 6639 <em xmlns="http://www.w3.org/1999/xhtml" class="varname">function</em>.</p> 6638 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">result</span></i>---T if <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-wait-with-timeout</strong></span>6640 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">result</span></i>---T if <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-wait-with-timeout</strong></span> 6639 6641 returned because its <em xmlns="http://www.w3.org/1999/xhtml" class="varname">function</em> returned 6640 6642 true, or NIL if it returned because the duration … … 6642 6644 </div> 6643 6645 <div class="refsect1" lang="en" xml:lang="en"> 6644 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506279"></a>6646 <a xmlns="http://www.w3.org/1999/xhtml" id="id414318"></a> 6645 6647 <div class="header">Description:</div> 6646 6648 <p xmlns="http://www.w3.org/1999/xhtml">If <em class="varname">ticks</em> is NIL, behaves exactly like 6647 <a href="#f_process-wait" title="Function PROCESS-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait</b></a>, except for returning T.6649 <a class="xref" href="#f_process-wait" title="Function PROCESS-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait</b></a>, except for returning T. 6648 6650 Otherwise, <em class="varname">function</em> will be tested repeatedly, 6649 6651 in the same 6650 kind of test/yield loop as in <a href="#f_process-wait" title="Function PROCESS-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait</b></a>>6652 kind of test/yield loop as in <a class="xref" href="#f_process-wait" title="Function PROCESS-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait</b></a>> 6651 6653 until either <em class="varname">function</em> returns true, 6652 6654 or the duration <em class="varname">ticks</em> has been exceeded. 6653 6655 </p> 6654 6656 <p xmlns="http://www.w3.org/1999/xhtml"> Having already read the descriptions of 6655 <a href="#f_process-allow-schedule" title="Function PROCESS-ALLOW-SCHEDULE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-allow-schedule</b></a> and6656 <a href="#f_process-wait" title="Function PROCESS-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait</b></a>, the6657 <a class="xref" href="#f_process-allow-schedule" title="Function PROCESS-ALLOW-SCHEDULE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-allow-schedule</b></a> and 6658 <a class="xref" href="#f_process-wait" title="Function PROCESS-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait</b></a>, the 6657 6659 astute reader has no doubt anticipated the observation that 6658 6660 better alternatives should be used whenever possible.</p> 6659 6661 </div> 6660 6662 <div class="refsect1" lang="en" xml:lang="en"> 6661 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506323"></a>6663 <a xmlns="http://www.w3.org/1999/xhtml" id="id414362"></a> 6662 6664 <div class="header">See Also:</div> 6663 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#v_ticks-per-second" title="Variable *TICKS-PER-SECOND*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*ticks-per-second*</b></a>, <a href="#f_process-whostate" title="Function PROCESS-WHOSTATE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-whostate</b></a>, <a href="#f_process-wait" title="Function PROCESS-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait</b></a>, <a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>6665 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#v_ticks-per-second" title="Variable *TICKS-PER-SECOND*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*ticks-per-second*</b></a>, <a class="xref" href="#f_process-whostate" title="Function PROCESS-WHOSTATE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-whostate</b></a>, <a class="xref" href="#f_process-wait" title="Function PROCESS-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-wait</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 6664 6666 </div> 6665 6667 </div> … … 6670 6672 <strong>[Macro]</strong> 6671 6673 <br></br> 6672 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">without-interrupts</strong></span>6674 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>without-interrupts</strong></span> 6673 6675 <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&body</em> body => result</code> 6674 6676 </div> … … 6679 6681 <div> 6680 6682 <div class="refsect1" lang="en" xml:lang="en"> 6681 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506410"></a>6683 <a xmlns="http://www.w3.org/1999/xhtml" id="id414465"></a> 6682 6684 <div class="header">Arguments and Values:</div> 6683 6685 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">body</span></i>---an implicit progn.</p> … … 6686 6688 </div> 6687 6689 <div class="refsect1" lang="en" xml:lang="en"> 6688 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506448"></a>6690 <a xmlns="http://www.w3.org/1999/xhtml" id="id414504"></a> 6689 6691 <div class="header">Description:</div> 6690 6692 <p xmlns="http://www.w3.org/1999/xhtml">Executes <em class="varname">body</em> 6691 in an environment in which <a href="#f_process-interrupt" title="Function PROCESS-INTERRUPT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-interrupt</b></a>6693 in an environment in which <a class="xref" href="#f_process-interrupt" title="Function PROCESS-INTERRUPT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-interrupt</b></a> 6692 6694 requests are 6693 6695 deferred. As noted in the description of 6694 <a href="#f_process-interrupt" title="Function PROCESS-INTERRUPT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-interrupt</b></a>, this has nothing to do6696 <a class="xref" href="#f_process-interrupt" title="Function PROCESS-INTERRUPT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-interrupt</b></a>, this has nothing to do 6695 6697 with the 6696 6698 scheduling of other threads; it may be necessary to inhibit 6697 <a href="#f_process-interrupt" title="Function PROCESS-INTERRUPT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-interrupt</b></a> handling when6699 <a class="xref" href="#f_process-interrupt" title="Function PROCESS-INTERRUPT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-interrupt</b></a> handling when 6698 6700 (for instance) modifying some data 6699 6701 structure (for which the current thread holds an appropriate lock) … … 6701 6703 </div> 6702 6704 <div class="refsect1" lang="en" xml:lang="en"> 6703 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506477"></a>6705 <a xmlns="http://www.w3.org/1999/xhtml" id="id414532"></a> 6704 6706 <div class="header">See Also:</div> 6705 6707 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"> 6706 <a href="#f_process-interrupt" title="Function PROCESS-INTERRUPT">6708 <a class="xref" href="#f_process-interrupt" title="Function PROCESS-INTERRUPT"> 6707 6709 <b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-interrupt</b> 6708 6710 </a> … … 6716 6718 <strong>[Function]</strong> 6717 6719 <br></br> 6718 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">make-lock</strong></span> <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em>6720 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>make-lock</strong></span> <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> 6719 6721 name => lock</code> 6720 6722 </div> … … 6725 6727 <div> 6726 6728 <div class="refsect1" lang="en" xml:lang="en"> 6727 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506530"></a>6729 <a xmlns="http://www.w3.org/1999/xhtml" id="id414594"></a> 6728 6730 <div class="header">Arguments and Values:</div> 6729 6731 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">name</span></i>---any lisp object; saved as part of 6730 6732 <em xmlns="http://www.w3.org/1999/xhtml" class="varname">lock</em>. Typically a string or symbol 6731 which may appear in the <a xmlns="http://www.w3.org/1999/xhtml" href="#f_process-whostate" title="Function PROCESS-WHOSTATE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-whostate</b></a>s6733 which may appear in the <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#f_process-whostate" title="Function PROCESS-WHOSTATE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-whostate</b></a>s 6732 6734 of threads which are waiting for <em xmlns="http://www.w3.org/1999/xhtml" class="varname">lock</em>. 6733 6735 </p> … … 6735 6737 </div> 6736 6738 <div class="refsect1" lang="en" xml:lang="en"> 6737 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506848"></a>6739 <a xmlns="http://www.w3.org/1999/xhtml" id="id414641"></a> 6738 6740 <div class="header">Description:</div> 6739 6741 <p xmlns="http://www.w3.org/1999/xhtml">Creates and returns a lock object, which can … … 6745 6747 </div> 6746 6748 <div class="refsect1" lang="en" xml:lang="en"> 6747 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506864"></a>6749 <a xmlns="http://www.w3.org/1999/xhtml" id="id414656"></a> 6748 6750 <div class="header">See Also:</div> 6749 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#m_with-lock-grabbed" title="Macro WITH-LOCK-GRABBED"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-lock-grabbed</b></a>, <a href="#f_grab-lock" title="Function GRAB-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">grab-lock</b></a>, <a href="#f_release-lock" title="Function RELEASE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">release-lock</b></a>, <a href="#f_try-lock" title="Function TRY-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">try-lock</b></a>, <a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>6751 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#m_with-lock-grabbed" title="Macro WITH-LOCK-GRABBED"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-lock-grabbed</b></a>, <a class="xref" href="#f_grab-lock" title="Function GRAB-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">grab-lock</b></a>, <a class="xref" href="#f_release-lock" title="Function RELEASE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">release-lock</b></a>, <a class="xref" href="#f_try-lock" title="Function TRY-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">try-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 6750 6752 </div> 6751 6753 </div> … … 6756 6758 <strong>[Macro]</strong> 6757 6759 <br></br> 6758 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">with-lock-grabbed</strong></span>6760 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>with-lock-grabbed</strong></span> 6759 6761 (lock) <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&body</em> body</code> 6760 6762 </div> … … 6765 6767 <div> 6766 6768 <div class="refsect1" lang="en" xml:lang="en"> 6767 <a xmlns="http://www.w3.org/1999/xhtml" id="id 506951"></a>6769 <a xmlns="http://www.w3.org/1999/xhtml" id="id414759"></a> 6768 6770 <div class="header">Arguments and Values:</div> 6769 6771 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">lock</span></i>---an object of type CCL:LOCK.</p> … … 6773 6775 </div> 6774 6776 <div class="refsect1" lang="en" xml:lang="en"> 6775 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507002"></a>6777 <a xmlns="http://www.w3.org/1999/xhtml" id="id414810"></a> 6776 6778 <div class="header">Description:</div> 6777 6779 <p xmlns="http://www.w3.org/1999/xhtml">Waits until <em class="varname">lock</em> is either free or … … 6779 6781 thread, then executes <em class="varname">body</em> with the 6780 6782 lock owned by the calling thread. If <em class="varname">lock</em> 6781 was free when <span ><strong class="function">with-lock-grabbed</strong></span> was called,6783 was free when <span class="function"><strong>with-lock-grabbed</strong></span> was called, 6782 6784 it is restored to a free state after <em class="varname">body</em> 6783 6785 is executed.</p> 6784 6786 </div> 6785 6787 <div class="refsect1" lang="en" xml:lang="en"> 6786 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507032"></a>6788 <a xmlns="http://www.w3.org/1999/xhtml" id="id414839"></a> 6787 6789 <div class="header">See Also:</div> 6788 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#f_grab-lock" title="Function GRAB-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">grab-lock</b></a>, <a href="#f_release-lock" title="Function RELEASE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">release-lock</b></a>, <a href="#f_try-lock" title="Function TRY-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">try-lock</b></a>, <a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>6790 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_grab-lock" title="Function GRAB-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">grab-lock</b></a>, <a class="xref" href="#f_release-lock" title="Function RELEASE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">release-lock</b></a>, <a class="xref" href="#f_try-lock" title="Function TRY-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">try-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 6789 6791 </div> 6790 6792 </div> … … 6795 6797 <strong>[Function]</strong> 6796 6798 <br></br> 6797 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">grab-lock</strong></span> lock</code>6799 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>grab-lock</strong></span> lock</code> 6798 6800 </div> 6799 6801 <div class="refentrytitle">Waits until a given lock can be obtained, then … … 6803 6805 <div> 6804 6806 <div class="refsect1" lang="en" xml:lang="en"> 6805 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507115"></a>6807 <a xmlns="http://www.w3.org/1999/xhtml" id="id414939"></a> 6806 6808 <div class="header">Arguments and Values:</div> 6807 6809 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">lock</span></i>---an object of type CCL:LOCK.</p> 6808 6810 </div> 6809 6811 <div class="refsect1" lang="en" xml:lang="en"> 6810 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507137"></a>6812 <a xmlns="http://www.w3.org/1999/xhtml" id="id414962"></a> 6811 6813 <div class="header">Description:</div> 6812 6814 <p xmlns="http://www.w3.org/1999/xhtml">Blocks until <em class="varname">lock</em> is owned by the 6813 6815 calling thread.</p> 6814 <p xmlns="http://www.w3.org/1999/xhtml">The macro <a href="#m_with-lock-grabbed" title="Macro WITH-LOCK-GRABBED"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-lock-grabbed</b></a>6816 <p xmlns="http://www.w3.org/1999/xhtml">The macro <a class="xref" href="#m_with-lock-grabbed" title="Macro WITH-LOCK-GRABBED"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-lock-grabbed</b></a> 6815 6817 <span class="emphasis"><em>could</em></span> be defined in 6816 terms of <span ><strong class="function">grab-lock</strong></span> and6817 <a href="#f_release-lock" title="Function RELEASE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">release-lock</b></a>, but it is actually6818 terms of <span class="function"><strong>grab-lock</strong></span> and 6819 <a class="xref" href="#f_release-lock" title="Function RELEASE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">release-lock</b></a>, but it is actually 6818 6820 implemented at a slightly lower level.</p> 6819 6821 </div> 6820 6822 <div class="refsect1" lang="en" xml:lang="en"> 6821 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507168"></a>6823 <a xmlns="http://www.w3.org/1999/xhtml" id="id414995"></a> 6822 6824 <div class="header">See Also:</div> 6823 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#m_with-lock-grabbed" title="Macro WITH-LOCK-GRABBED"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-lock-grabbed</b></a>, <a href="#f_release-lock" title="Function RELEASE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">release-lock</b></a>, <a href="#f_try-lock" title="Function TRY-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">try-lock</b></a>, <a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>6825 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#m_with-lock-grabbed" title="Macro WITH-LOCK-GRABBED"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-lock-grabbed</b></a>, <a class="xref" href="#f_release-lock" title="Function RELEASE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">release-lock</b></a>, <a class="xref" href="#f_try-lock" title="Function TRY-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">try-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 6824 6826 </div> 6825 6827 </div> … … 6830 6832 <strong>[Function]</strong> 6831 6833 <br></br> 6832 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">release-lock</strong></span> lock</code>6834 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>release-lock</strong></span> lock</code> 6833 6835 </div> 6834 6836 <div class="refentrytitle">Relinquishes ownership of a given lock.</div> … … 6837 6839 <div> 6838 6840 <div class="refsect1" lang="en" xml:lang="en"> 6839 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507250"></a>6841 <a xmlns="http://www.w3.org/1999/xhtml" id="id415094"></a> 6840 6842 <div class="header">Arguments and Values:</div> 6841 6843 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">lock</span></i>---an object of type CCL:LOCK.</p> 6842 6844 </div> 6843 6845 <div class="refsect1" lang="en" xml:lang="en"> 6844 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507272"></a>6846 <a xmlns="http://www.w3.org/1999/xhtml" id="id415117"></a> 6845 6847 <div class="header">Description:</div> 6846 6848 <p xmlns="http://www.w3.org/1999/xhtml">Signals an error of type CCL:LOCK-NOT-OWNER if … … 6848 6850 is not already owned by the calling thread; otherwise, undoes the 6849 6851 effect of one previous 6850 <a href="#f_grab-lock" title="Function GRAB-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">grab-lock</b></a>. If this means that6851 <span ><strong class="function">release-lock</strong></span> has now been called on6852 <a class="xref" href="#f_grab-lock" title="Function GRAB-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">grab-lock</b></a>. If this means that 6853 <span class="function"><strong>release-lock</strong></span> has now been called on 6852 6854 <em class="varname">lock</em> the same number of times as 6853 <a href="#f_grab-lock" title="Function GRAB-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">grab-lock</b></a> has, <em class="varname">lock</em>6855 <a class="xref" href="#f_grab-lock" title="Function GRAB-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">grab-lock</b></a> has, <em class="varname">lock</em> 6854 6856 becomes free.</p> 6855 6857 </div> 6856 6858 <div class="refsect1" lang="en" xml:lang="en"> 6857 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507304"></a>6859 <a xmlns="http://www.w3.org/1999/xhtml" id="id415150"></a> 6858 6860 <div class="header">See Also:</div> 6859 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#m_with-lock-grabbed" title="Macro WITH-LOCK-GRABBED"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-lock-grabbed</b></a>, <a href="#f_grab-lock" title="Function GRAB-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">grab-lock</b></a>, <a href="#f_try-lock" title="Function TRY-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">try-lock</b></a>, <a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>6861 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#m_with-lock-grabbed" title="Macro WITH-LOCK-GRABBED"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-lock-grabbed</b></a>, <a class="xref" href="#f_grab-lock" title="Function GRAB-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">grab-lock</b></a>, <a class="xref" href="#f_try-lock" title="Function TRY-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">try-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 6860 6862 </div> 6861 6863 </div> … … 6866 6868 <strong>[Function]</strong> 6867 6869 <br></br> 6868 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">try-lock</strong></span> lock => result</code>6870 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>try-lock</strong></span> lock => result</code> 6869 6871 </div> 6870 6872 <div class="refentrytitle">Obtains the given lock, but only if it is not … … 6874 6876 <div> 6875 6877 <div class="refsect1" lang="en" xml:lang="en"> 6876 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507388"></a>6878 <a xmlns="http://www.w3.org/1999/xhtml" id="id415251"></a> 6877 6879 <div class="header">Arguments and Values:</div> 6878 6880 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">lock</span></i>---an object of type CCL:LOCK.</p> … … 6881 6883 </div> 6882 6884 <div class="refsect1" lang="en" xml:lang="en"> 6883 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507427"></a>6885 <a xmlns="http://www.w3.org/1999/xhtml" id="id415289"></a> 6884 6886 <div class="header">Description:</div> 6885 6887 <p xmlns="http://www.w3.org/1999/xhtml">Tests whether <em class="varname">lock</em> 6886 6888 can be obtained without blocking - that is, either 6887 6889 <em class="varname">lock</em> is already free, or it is already owned 6888 by <a href="#v_current-process" title="Variable *CURRENT-PROCESS*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*current-process*</b></a>. If it can,6890 by <a class="xref" href="#v_current-process" title="Variable *CURRENT-PROCESS*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*current-process*</b></a>. If it can, 6889 6891 causes it to 6890 6892 be owned by the calling lisp process (thread) and returns T. … … 6894 6896 </div> 6895 6897 <div class="refsect1" lang="en" xml:lang="en"> 6896 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507453"></a>6898 <a xmlns="http://www.w3.org/1999/xhtml" id="id415312"></a> 6897 6899 <div class="header">See Also:</div> 6898 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#m_with-lock-grabbed" title="Macro WITH-LOCK-GRABBED"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-lock-grabbed</b></a>, <a href="#f_grab-lock" title="Function GRAB-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">grab-lock</b></a>, <a href="#f_release-lock" title="Function RELEASE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">release-lock</b></a>, <a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>6900 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#m_with-lock-grabbed" title="Macro WITH-LOCK-GRABBED"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-lock-grabbed</b></a>, <a class="xref" href="#f_grab-lock" title="Function GRAB-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">grab-lock</b></a>, <a class="xref" href="#f_release-lock" title="Function RELEASE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">release-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 6899 6901 </div> 6900 6902 </div> … … 6905 6907 <strong>[Function]</strong> 6906 6908 <br></br> 6907 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">make-read-write-lock</strong></span>6909 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>make-read-write-lock</strong></span> 6908 6910 => read-write-lock</code> 6909 6911 </div> … … 6914 6916 <div> 6915 6917 <div class="refsect1" lang="en" xml:lang="en"> 6916 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507537"></a>6918 <a xmlns="http://www.w3.org/1999/xhtml" id="id415412"></a> 6917 6919 <div class="header">Arguments and Values:</div> 6918 6920 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">read-write-lock</span></i>---a newly-allocated object of type … … 6920 6922 </div> 6921 6923 <div class="refsect1" lang="en" xml:lang="en"> 6922 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507560"></a>6924 <a xmlns="http://www.w3.org/1999/xhtml" id="id415435"></a> 6923 6925 <div class="header">Description:</div> 6924 6926 <p xmlns="http://www.w3.org/1999/xhtml">Creates and returns an object of type CCL::READ-WRITE-LOCK. … … 6931 6933 </div> 6932 6934 <div class="refsect1" lang="en" xml:lang="en"> 6933 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507580"></a>6935 <a xmlns="http://www.w3.org/1999/xhtml" id="id415451"></a> 6934 6936 <div class="header">See Also:</div> 6935 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#m_with-read-lock" title="Macro WITH-READ-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-read-lock</b></a>, <a href="#m_with-write-lock" title="Macro WITH-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-write-lock</b></a>, <a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>6936 </div> 6937 <div class="refsect1" lang="en" xml:lang="en"> 6938 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507620"></a>6937 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#m_with-read-lock" title="Macro WITH-READ-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-read-lock</b></a>, <a class="xref" href="#m_with-write-lock" title="Macro WITH-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-write-lock</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 6938 </div> 6939 <div class="refsect1" lang="en" xml:lang="en"> 6940 <a xmlns="http://www.w3.org/1999/xhtml" id="id415499"></a> 6939 6941 <div class="header">Notes:</div> 6940 6942 <p xmlns="http://www.w3.org/1999/xhtml">There probably should be some way to … … 6949 6951 <strong>[Macro]</strong> 6950 6952 <br></br> 6951 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">with-read-lock</strong></span>6953 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>with-read-lock</strong></span> 6952 6954 (read-write-lock) <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&body</em> body => result</code> 6953 6955 </div> … … 6959 6961 <div> 6960 6962 <div class="refsect1" lang="en" xml:lang="en"> 6961 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507671"></a>6963 <a xmlns="http://www.w3.org/1999/xhtml" id="id415556"></a> 6962 6964 <div class="header">Arguments and Values:</div> 6963 6965 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">read-write-lock</span></i>---an object of type … … 6968 6970 </div> 6969 6971 <div class="refsect1" lang="en" xml:lang="en"> 6970 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507723"></a>6972 <a xmlns="http://www.w3.org/1999/xhtml" id="id415607"></a> 6971 6973 <div class="header">Description:</div> 6972 6974 <p xmlns="http://www.w3.org/1999/xhtml">Waits until <em class="varname">read-write-lock</em> has no 6973 6975 writer, 6974 ensures that <a href="#v_current-process" title="Variable *CURRENT-PROCESS*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*current-process*</b></a> is a6976 ensures that <a class="xref" href="#v_current-process" title="Variable *CURRENT-PROCESS*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*current-process*</b></a> is a 6975 6977 reader of it, then executes <em class="varname">body</em>. 6976 6978 </p> 6977 6979 <p xmlns="http://www.w3.org/1999/xhtml">After executing <em class="varname">body</em>, if 6978 <a href="#v_current-process" title="Variable *CURRENT-PROCESS*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*current-process*</b></a> was not a reader of6980 <a class="xref" href="#v_current-process" title="Variable *CURRENT-PROCESS*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*current-process*</b></a> was not a reader of 6979 6981 <em class="varname">read-write-lock</em> before 6980 <span ><strong class="function">with-read-lock</strong></span> was called, the lock is6982 <span class="function"><strong>with-read-lock</strong></span> was called, the lock is 6981 6983 released. If it was already a reader, it remains one.</p> 6982 6984 </div> 6983 6985 <div class="refsect1" lang="en" xml:lang="en"> 6984 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507760"></a>6986 <a xmlns="http://www.w3.org/1999/xhtml" id="id415647"></a> 6985 6987 <div class="header">See Also:</div> 6986 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#m_with-write-lock" title="Macro WITH-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-write-lock</b></a>, <a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>6988 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#m_with-write-lock" title="Macro WITH-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-write-lock</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 6987 6989 </div> 6988 6990 </div> … … 6993 6995 <strong>[Macro]</strong> 6994 6996 <br></br> 6995 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">with-write-lock</strong></span>6997 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>with-write-lock</strong></span> 6996 6998 (read-write-lock) <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&body</em> body</code> 6997 6999 </div> … … 7002 7004 <div> 7003 7005 <div class="refsect1" lang="en" xml:lang="en"> 7004 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507839"></a>7006 <a xmlns="http://www.w3.org/1999/xhtml" id="id415740"></a> 7005 7007 <div class="header">Arguments and Values:</div> 7006 7008 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">read-write-lock</span></i>---an object of type … … 7011 7013 </div> 7012 7014 <div class="refsect1" lang="en" xml:lang="en"> 7013 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507891"></a>7015 <a xmlns="http://www.w3.org/1999/xhtml" id="id415791"></a> 7014 7016 <div class="header">Description:</div> 7015 7017 <p xmlns="http://www.w3.org/1999/xhtml">Waits until <em class="varname">read-write-lock</em> has no 7016 readers and no writer other than <a href="#v_current-process" title="Variable *CURRENT-PROCESS*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*current-process*</b></a>,7017 then ensures that <a href="#v_current-process" title="Variable *CURRENT-PROCESS*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*current-process*</b></a> is the7018 readers and no writer other than <a class="xref" href="#v_current-process" title="Variable *CURRENT-PROCESS*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*current-process*</b></a>, 7019 then ensures that <a class="xref" href="#v_current-process" title="Variable *CURRENT-PROCESS*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*current-process*</b></a> is the 7018 7020 writer of it. With the lock held, executes <em class="varname">body</em>. 7019 7021 </p> 7020 7022 <p xmlns="http://www.w3.org/1999/xhtml">After executing <em class="varname">body</em>, if 7021 <a href="#v_current-process" title="Variable *CURRENT-PROCESS*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*current-process*</b></a> was not the writer of7023 <a class="xref" href="#v_current-process" title="Variable *CURRENT-PROCESS*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*current-process*</b></a> was not the writer of 7022 7024 <em class="varname">read-write-lock</em> before 7023 <span ><strong class="function">with-write-lock</strong></span> was called, the lock is7025 <span class="function"><strong>with-write-lock</strong></span> was called, the lock is 7024 7026 released. If it was already the writer, it remains the 7025 7027 writer.</p> 7026 7028 </div> 7027 7029 <div class="refsect1" lang="en" xml:lang="en"> 7028 <a xmlns="http://www.w3.org/1999/xhtml" id="id 507933"></a>7030 <a xmlns="http://www.w3.org/1999/xhtml" id="id415836"></a> 7029 7031 <div class="header">See Also:</div> 7030 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#m_with-read-lock" title="Macro WITH-READ-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-read-lock</b></a>, <a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>7032 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#m_with-read-lock" title="Macro WITH-READ-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-read-lock</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 7031 7033 </div> 7032 7034 </div> … … 7037 7039 <strong>[Function]</strong> 7038 7040 <br></br> 7039 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">make-semaphore</strong></span>7041 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>make-semaphore</strong></span> 7040 7042 => semaphore</code> 7041 7043 </div> … … 7046 7048 <div> 7047 7049 <div class="refsect1" lang="en" xml:lang="en"> 7048 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508009"></a>7050 <a xmlns="http://www.w3.org/1999/xhtml" id="id415926"></a> 7049 7051 <div class="header">Arguments and Values:</div> 7050 7052 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">semaphore</span></i>---a newly-allocated object of type CCL:SEMAPHORE.</p> 7051 7053 </div> 7052 7054 <div class="refsect1" lang="en" xml:lang="en"> 7053 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508031"></a>7055 <a xmlns="http://www.w3.org/1999/xhtml" id="id415948"></a> 7054 7056 <div class="header">Description:</div> 7055 7057 <p xmlns="http://www.w3.org/1999/xhtml">Creates and returns an object of type CCL:SEMAPHORE. … … 7060 7062 </div> 7061 7063 <div class="refsect1" lang="en" xml:lang="en"> 7062 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508048"></a>7064 <a xmlns="http://www.w3.org/1999/xhtml" id="id415963"></a> 7063 7065 <div class="header">See Also:</div> 7064 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_signal-semaphore" title="Function SIGNAL-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">signal-semaphore</b></a>, <a href="#f_wait-on-semaphore" title="Function WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">wait-on-semaphore</b></a>, <a href="#f_timed-wait-on-semaphore" title="Function TIMED-WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">timed-wait-on-semaphore</b></a>, <a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>7066 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_signal-semaphore" title="Function SIGNAL-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">signal-semaphore</b></a>, <a class="xref" href="#f_wait-on-semaphore" title="Function WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">wait-on-semaphore</b></a>, <a class="xref" href="#f_timed-wait-on-semaphore" title="Function TIMED-WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">timed-wait-on-semaphore</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 7065 7067 </div> 7066 7068 </div> … … 7071 7073 <strong>[Function]</strong> 7072 7074 <br></br> 7073 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">signal-semaphore</strong></span>7075 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>signal-semaphore</strong></span> 7074 7076 semaphore => result</code> 7075 7077 </div> … … 7080 7082 <div> 7081 7083 <div class="refsect1" lang="en" xml:lang="en"> 7082 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508127"></a>7084 <a xmlns="http://www.w3.org/1999/xhtml" id="id416058"></a> 7083 7085 <div class="header">Arguments and Values:</div> 7084 7086 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">semaphore</span></i>---an object of type CCL:SEMAPHORE.</p> … … 7087 7089 </div> 7088 7090 <div class="refsect1" lang="en" xml:lang="en"> 7089 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508164"></a>7091 <a xmlns="http://www.w3.org/1999/xhtml" id="id416094"></a> 7090 7092 <div class="header">Description:</div> 7091 7093 <p xmlns="http://www.w3.org/1999/xhtml">Atomically increments <em class="varname">semaphore</em>'s … … 7094 7096 </div> 7095 7097 <div class="refsect1" lang="en" xml:lang="en"> 7096 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508179"></a>7098 <a xmlns="http://www.w3.org/1999/xhtml" id="id416108"></a> 7097 7099 <div class="header">See Also:</div> 7098 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_wait-on-semaphore" title="Function WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">wait-on-semaphore</b></a>, <a href="#f_timed-wait-on-semaphore" title="Function TIMED-WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">timed-wait-on-semaphore</b></a>, <a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>7099 </div> 7100 <div class="refsect1" lang="en" xml:lang="en"> 7101 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508226"></a>7100 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_wait-on-semaphore" title="Function WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">wait-on-semaphore</b></a>, <a class="xref" href="#f_timed-wait-on-semaphore" title="Function TIMED-WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">timed-wait-on-semaphore</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 7101 </div> 7102 <div class="refsect1" lang="en" xml:lang="en"> 7103 <a xmlns="http://www.w3.org/1999/xhtml" id="id416161"></a> 7102 7104 <div class="header">Notes:</div> 7103 7105 <p xmlns="http://www.w3.org/1999/xhtml"><em class="varname">result</em> should probably be interpreted 7104 and acted on by <span ><strong class="function">signal-semaphore</strong></span>, because7106 and acted on by <span class="function"><strong>signal-semaphore</strong></span>, because 7105 7107 it is not likely to be meaningful to a lisp program, and the 7106 7108 most common cause of failure is a type error.</p> … … 7113 7115 <strong>[Function]</strong> 7114 7116 <br></br> 7115 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">wait-on-semaphore</strong></span>7117 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>wait-on-semaphore</strong></span> 7116 7118 semaphore => result</code> 7117 7119 </div> … … 7122 7124 <div> 7123 7125 <div class="refsect1" lang="en" xml:lang="en"> 7124 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508281"></a>7126 <a xmlns="http://www.w3.org/1999/xhtml" id="id416221"></a> 7125 7127 <div class="header">Arguments and Values:</div> 7126 7128 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">semaphore</span></i>---an object of type CCL:SEMAPHORE.</p> … … 7129 7131 </div> 7130 7132 <div class="refsect1" lang="en" xml:lang="en"> 7131 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508319"></a>7133 <a xmlns="http://www.w3.org/1999/xhtml" id="id416257"></a> 7132 7134 <div class="header">Description:</div> 7133 7135 <p xmlns="http://www.w3.org/1999/xhtml">Waits until <em class="varname">semaphore</em> … … 7137 7139 </div> 7138 7140 <div class="refsect1" lang="en" xml:lang="en"> 7139 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508334"></a>7141 <a xmlns="http://www.w3.org/1999/xhtml" id="id416272"></a> 7140 7142 <div class="header">See Also:</div> 7141 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_signal-semaphore" title="Function SIGNAL-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">signal-semaphore</b></a>, <a href="#f_timed-wait-on-semaphore" title="Function TIMED-WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">timed-wait-on-semaphore</b></a>, <a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>7142 </div> 7143 <div class="refsect1" lang="en" xml:lang="en"> 7144 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508386"></a>7143 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_signal-semaphore" title="Function SIGNAL-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">signal-semaphore</b></a>, <a class="xref" href="#f_timed-wait-on-semaphore" title="Function TIMED-WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">timed-wait-on-semaphore</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 7144 </div> 7145 <div class="refsect1" lang="en" xml:lang="en"> 7146 <a xmlns="http://www.w3.org/1999/xhtml" id="id416325"></a> 7145 7147 <div class="header">Notes:</div> 7146 7148 <p xmlns="http://www.w3.org/1999/xhtml"><em class="varname">result</em> should probably be interpreted 7147 and acted on by <span ><strong class="function">wait-on-semaphore</strong></span>, because7149 and acted on by <span class="function"><strong>wait-on-semaphore</strong></span>, because 7148 7150 it is not likely to be meaningful to a lisp program, and the 7149 7151 most common cause of failure is a type error.</p> … … 7156 7158 <strong>[Function]</strong> 7157 7159 <br></br> 7158 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">timed-wait-on-semaphore</strong></span>7160 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>timed-wait-on-semaphore</strong></span> 7159 7161 semaphore timeout => result</code> 7160 7162 </div> … … 7166 7168 <div> 7167 7169 <div class="refsect1" lang="en" xml:lang="en"> 7168 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508442"></a>7170 <a xmlns="http://www.w3.org/1999/xhtml" id="id416385"></a> 7169 7171 <div class="header">Arguments and Values:</div> 7170 7172 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">semaphore</span></i>---An object of type CCL:SEMAPHORE.</p> 7171 7173 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">timeout</span></i>---a time interval in seconds. May be any 7172 non-negative real number the <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">floor</strong></span> of7174 non-negative real number the <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>floor</strong></span> of 7173 7175 which fits in 32 bits. The default is 1.</p> 7174 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">result</span></i>---T if <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">timed-wait-on-semaphore</strong></span>7176 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">result</span></i>---T if <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>timed-wait-on-semaphore</strong></span> 7175 7177 returned because it was able to decrement the count of 7176 7178 <em xmlns="http://www.w3.org/1999/xhtml" class="varname">semaphore</em>; NIL if it returned because … … 7179 7181 </div> 7180 7182 <div class="refsect1" lang="en" xml:lang="en"> 7181 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508509"></a>7183 <a xmlns="http://www.w3.org/1999/xhtml" id="id416451"></a> 7182 7184 <div class="header">Description:</div> 7183 7185 <p xmlns="http://www.w3.org/1999/xhtml">Waits until <em class="varname">semaphore</em> … … 7188 7190 </div> 7189 7191 <div class="refsect1" lang="en" xml:lang="en"> 7190 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508527"></a>7192 <a xmlns="http://www.w3.org/1999/xhtml" id="id416468"></a> 7191 7193 <div class="header">See Also:</div> 7192 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_wait-on-semaphore" title="Function WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">wait-on-semaphore</b></a>, <a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>7194 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_wait-on-semaphore" title="Function WAIT-ON-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">wait-on-semaphore</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 7193 7195 </div> 7194 7196 </div> … … 7199 7201 <strong>[Function]</strong> 7200 7202 <br></br> 7201 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-input-wait</strong></span>7203 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-input-wait</strong></span> 7202 7204 fd <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> timeout</code> 7203 7205 </div> … … 7208 7210 <div> 7209 7211 <div class="refsect1" lang="en" xml:lang="en"> 7210 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508613"></a>7212 <a xmlns="http://www.w3.org/1999/xhtml" id="id416561"></a> 7211 7213 <div class="header">Arguments and Values:</div> 7212 7214 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">fd</span></i>---a file descriptor, which is a non-negative integer 7213 7215 used by the OS to refer to an open file, socket, or similar 7214 I/O connection. See <a xmlns="http://www.w3.org/1999/xhtml" href="#f_stream-device" title="Generic Function CCL::STREAM-DEVICE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">ccl::stream-device</b></a>.</p>7216 I/O connection. See <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#f_stream-device" title="Generic Function CCL::STREAM-DEVICE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">ccl::stream-device</b></a>.</p> 7215 7217 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">timeout</span></i>---either NIL or a time interval in milliseconds. Must be a non-negative integer. The default is NIL.</p> 7216 7218 </div> 7217 7219 <div class="refsect1" lang="en" xml:lang="en"> 7218 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508657"></a>7220 <a xmlns="http://www.w3.org/1999/xhtml" id="id416603"></a> 7219 7221 <div class="header">Description:</div> 7220 7222 <p xmlns="http://www.w3.org/1999/xhtml">Wait until input is available on <em class="varname">fd</em>. 7221 This uses the <span ><strong class="function">select()</strong></span> system call, and is7223 This uses the <span class="function"><strong>select()</strong></span> system call, and is 7222 7224 generally a fairly 7223 7225 efficient way of blocking while waiting for input. More 7224 accurately, <span ><strong class="function">process-input-wait</strong></span>7226 accurately, <span class="function"><strong>process-input-wait</strong></span> 7225 7227 waits until it's possible to read 7226 7228 from fd without blocking, or until <em class="varname">timeout</em>, if … … 7232 7234 </div> 7233 7235 <div class="refsect1" lang="en" xml:lang="en"> 7234 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508690"></a>7236 <a xmlns="http://www.w3.org/1999/xhtml" id="id416636"></a> 7235 7237 <div class="header">See Also:</div> 7236 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>7237 </div> 7238 <div class="refsect1" lang="en" xml:lang="en"> 7239 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508727"></a>7238 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 7239 </div> 7240 <div class="refsect1" lang="en" xml:lang="en"> 7241 <a xmlns="http://www.w3.org/1999/xhtml" id="id416674"></a> 7240 7242 <div class="header">Notes:</div> 7241 7243 <p xmlns="http://www.w3.org/1999/xhtml"> 7242 <span ><strong class="function">process-input-wait</strong></span> has a timeout parameter,7244 <span class="function"><strong>process-input-wait</strong></span> has a timeout parameter, 7243 7245 and 7244 <a href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a> does not. This7246 <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a> does not. This 7245 7247 inconsistency should probably be corrected. 7246 7248 </p> … … 7253 7255 <strong>[Function]</strong> 7254 7256 <br></br> 7255 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-output-wait</strong></span>7257 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-output-wait</strong></span> 7256 7258 fd <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&optional</em> timeout</code> 7257 7259 </div> … … 7262 7264 <div> 7263 7265 <div class="refsect1" lang="en" xml:lang="en"> 7264 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508785"></a>7266 <a xmlns="http://www.w3.org/1999/xhtml" id="id416738"></a> 7265 7267 <div class="header">Arguments and Values:</div> 7266 7268 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">fd</span></i>---a file descriptor, which is a non-negative integer 7267 7269 used by the OS to refer to an open file, socket, or similar 7268 I/O connection. See <a xmlns="http://www.w3.org/1999/xhtml" href="#f_stream-device" title="Generic Function CCL::STREAM-DEVICE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">ccl::stream-device</b></a>.</p>7270 I/O connection. See <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#f_stream-device" title="Generic Function CCL::STREAM-DEVICE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">ccl::stream-device</b></a>.</p> 7269 7271 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">timeout</span></i>---either NIL or a time interval in milliseconds. Must be a non-negative integer. The default is NIL.</p> 7270 7272 </div> 7271 7273 <div class="refsect1" lang="en" xml:lang="en"> 7272 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508829"></a>7274 <a xmlns="http://www.w3.org/1999/xhtml" id="id416780"></a> 7273 7275 <div class="header">Description:</div> 7274 7276 <p xmlns="http://www.w3.org/1999/xhtml">Wait until output is possible on <em class="varname">fd</em> or until <em class="varname">timeout</em>, if 7275 7277 it is not NIL, has been exceeded. 7276 This uses the <span ><strong class="function">select()</strong></span> system call, and is7278 This uses the <span class="function"><strong>select()</strong></span> system call, and is 7277 7279 generally a fairly 7278 7280 efficient way of blocking while waiting to output.</p> 7279 <p xmlns="http://www.w3.org/1999/xhtml">If <span ><strong class="function">process-output-wait</strong></span> is called on7281 <p xmlns="http://www.w3.org/1999/xhtml">If <span class="function"><strong>process-output-wait</strong></span> is called on 7280 7282 a network socket which has not yet established a connection, it 7281 7283 will wait until the connection is established. This is an … … 7283 7285 </div> 7284 7286 <div class="refsect1" lang="en" xml:lang="en"> 7285 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508862"></a>7287 <a xmlns="http://www.w3.org/1999/xhtml" id="id416813"></a> 7286 7288 <div class="header">See Also:</div> 7287 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <ahref="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span>7288 </div> 7289 <div class="refsect1" lang="en" xml:lang="en"> 7290 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508899"></a>7289 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a></span> 7290 </div> 7291 <div class="refsect1" lang="en" xml:lang="en"> 7292 <a xmlns="http://www.w3.org/1999/xhtml" id="id416850"></a> 7291 7293 <div class="header">Notes:</div> 7292 7294 <p xmlns="http://www.w3.org/1999/xhtml"> 7293 <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a> has a timeout parameter,7295 <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a> has a timeout parameter, 7294 7296 and 7295 <span ><strong class="function">process-output-wait</strong></span> does not. This7297 <span class="function"><strong>process-output-wait</strong></span> does not. This 7296 7298 inconsistency should probably be corrected. 7297 7299 </p> … … 7304 7306 <strong>[Macro]</strong> 7305 7307 <br></br> 7306 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">with-terminal-input</strong></span>7308 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>with-terminal-input</strong></span> 7307 7309 <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&body</em> body => result</code> 7308 7310 </div> … … 7313 7315 <div> 7314 7316 <div class="refsect1" lang="en" xml:lang="en"> 7315 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508957"></a>7317 <a xmlns="http://www.w3.org/1999/xhtml" id="id416915"></a> 7316 7318 <div class="header">Arguments and Values:</div> 7317 7319 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">body</span></i>---an implicit progn.</p> … … 7320 7322 </div> 7321 7323 <div class="refsect1" lang="en" xml:lang="en"> 7322 <a xmlns="http://www.w3.org/1999/xhtml" id="id 508996"></a>7324 <a xmlns="http://www.w3.org/1999/xhtml" id="id416954"></a> 7323 7325 <div class="header">Description:</div> 7324 7326 <p xmlns="http://www.w3.org/1999/xhtml">Requests exclusive read access to the standard terminal … … 7328 7330 </div> 7329 7331 <div class="refsect1" lang="en" xml:lang="en"> 7330 <a xmlns="http://www.w3.org/1999/xhtml" id="id 509014"></a>7332 <a xmlns="http://www.w3.org/1999/xhtml" id="id416970"></a> 7331 7333 <div class="header">See Also:</div> 7332 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#v_request-terminal-input-via-break" title="Variable *REQUEST-TERMINAL-INPUT-VIA-BREAK*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*request-terminal-input-via-break*</b></a>, <a href="#cmd_y" title="Toplevel Command :Y"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">:y</b></a>, <a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <ahref="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a></span>7334 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#v_request-terminal-input-via-break" title="Variable *REQUEST-TERMINAL-INPUT-VIA-BREAK*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*request-terminal-input-via-break*</b></a>, <a class="xref" href="#cmd_y" title="Toplevel Command :Y"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">:y</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a></span> 7333 7335 </div> 7334 7336 </div> … … 7347 7349 <div> 7348 7350 <div class="refsect1" lang="en" xml:lang="en"> 7349 <a xmlns="http://www.w3.org/1999/xhtml" id="id 509094"></a>7351 <a xmlns="http://www.w3.org/1999/xhtml" id="id417047"></a> 7350 7352 <div class="header">Value Type:</div> 7351 7353 <p xmlns="http://www.w3.org/1999/xhtml">A boolean.</p> 7352 7354 </div> 7353 7355 <div class="refsect1" lang="en" xml:lang="en"> 7354 <a xmlns="http://www.w3.org/1999/xhtml" id="id 509104"></a>7356 <a xmlns="http://www.w3.org/1999/xhtml" id="id417057"></a> 7355 7357 <div class="header">Initial Value:</div> 7356 7358 <p xmlns="http://www.w3.org/1999/xhtml">NIL.</p> 7357 7359 </div> 7358 7360 <div class="refsect1" lang="en" xml:lang="en"> 7359 <a xmlns="http://www.w3.org/1999/xhtml" id="id 509114"></a>7361 <a xmlns="http://www.w3.org/1999/xhtml" id="id417067"></a> 7360 7362 <div class="header">Description:</div> 7361 7363 <p xmlns="http://www.w3.org/1999/xhtml">Controls how attempts to obtain ownership of terminal input … … 7369 7371 </div> 7370 7372 <div class="refsect1" lang="en" xml:lang="en"> 7371 <a xmlns="http://www.w3.org/1999/xhtml" id="id 509131"></a>7373 <a xmlns="http://www.w3.org/1999/xhtml" id="id417080"></a> 7372 7374 <div class="header">See Also:</div> 7373 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a>, <a href="#cmd_y" title="Toplevel Command :Y"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">:y</b></a>, <a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <ahref="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a></span>7375 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a>, <a class="xref" href="#cmd_y" title="Toplevel Command :Y"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">:y</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a></span> 7374 7376 </div> 7375 7377 </div> … … 7380 7382 <strong>[Toplevel Command]</strong> 7381 7383 <br></br> 7382 <code>(<span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">:y</strong></span> p)</code>7384 <code>(<span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>:y</strong></span> p)</code> 7383 7385 </div> 7384 7386 <div class="refentrytitle">Yields control of terminal input to a specified … … 7388 7390 <div> 7389 7391 <div class="refsect1" lang="en" xml:lang="en"> 7390 <a xmlns="http://www.w3.org/1999/xhtml" id="id 509215"></a>7392 <a xmlns="http://www.w3.org/1999/xhtml" id="id417171"></a> 7391 7393 <div class="header">Arguments and Values:</div> 7392 7394 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">p</span></i>---a lisp process (thread), designated either by 7393 7395 an integer which matches its 7394 <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-serial-number</strong></span>,7395 or by a string which is <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">equal</strong></span> to7396 its <span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">process-name</strong></span>.</p>7397 </div> 7398 <div class="refsect1" lang="en" xml:lang="en"> 7399 <a xmlns="http://www.w3.org/1999/xhtml" id="id 509250"></a>7396 <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-serial-number</strong></span>, 7397 or by a string which is <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>equal</strong></span> to 7398 its <span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>process-name</strong></span>.</p> 7399 </div> 7400 <div class="refsect1" lang="en" xml:lang="en"> 7401 <a xmlns="http://www.w3.org/1999/xhtml" id="id417210"></a> 7400 7402 <div class="header">Description:</div> 7401 7403 <p xmlns="http://www.w3.org/1999/xhtml">:Y is a toplevel command, not a function. As such, it … … 7404 7406 <p xmlns="http://www.w3.org/1999/xhtml">The command yields control of terminal input to the 7405 7407 process <em class="varname">p</em>, which must have used 7406 <a href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a> to request access to the7408 <a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a> to request access to the 7407 7409 terminal input stream.</p> 7408 7410 </div> 7409 7411 <div class="refsect1" lang="en" xml:lang="en"> 7410 <a xmlns="http://www.w3.org/1999/xhtml" id="id 509274"></a>7412 <a xmlns="http://www.w3.org/1999/xhtml" id="id417232"></a> 7411 7413 <div class="header">See Also:</div> 7412 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a>, <a href="#v_request-terminal-input-via-break" title="Variable *REQUEST-TERMINAL-INPUT-VIA-BREAK*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*request-terminal-input-via-break*</b></a>, <a href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <ahref="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a></span>7414 <span xmlns="http://www.w3.org/1999/xhtml" class="simplelist"><a class="xref" href="#m_with-terminal-input" title="Macro WITH-TERMINAL-INPUT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">with-terminal-input</b></a>, <a class="xref" href="#v_request-terminal-input-via-break" title="Variable *REQUEST-TERMINAL-INPUT-VIA-BREAK*"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">*request-terminal-input-via-break*</b></a>, <a class="xref" href="#f_make-lock" title="Function MAKE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-lock</b></a>, <a class="xref" href="#f_make-read-write-lock" title="Function MAKE-READ-WRITE-LOCK"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-read-write-lock</b></a>, <a class="xref" href="#f_make-semaphore" title="Function MAKE-SEMAPHORE"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-semaphore</b></a>, <a class="xref" href="#f_process-input-wait" title="Function PROCESS-INPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-input-wait</b></a>, <a class="xref" href="#f_process-output-wait" title="Function PROCESS-OUTPUT-WAIT"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">process-output-wait</b></a></span> 7413 7415 </div> 7414 7416 </div> … … 7457 7459 sockets, and Unix-domain sockets. This should be enough for all 7458 7460 but the most esoteric network situations. All sockets are 7459 created by <a href="#f_make-socket" title="Function MAKE-SOCKET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-socket</b></a>. The type of socket7461 created by <a class="xref" href="#f_make-socket" title="Function MAKE-SOCKET"><b xmlns="http://www.w3.org/TR/xhtml1/transitional">make-socket</b></a>. The type of socket 7460 7462 depends on the arguments to it, as follows:</p> 7461 7463 <div xmlns="http://www.w3.org/1999/xhtml" class="variablelist"> … … 7527 7529 <strong>[Function]</strong> 7528 7530 <br></br> 7529 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">make-socket</strong></span> <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em>7531 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>make-socket</strong></span> <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> 7530 7532 address-family type connect eol format remote-host 7531 7533 remote-port local-host local-port local-filename … … 7539 7541 <div> 7540 7542 <div class="refsect1" lang="en" xml:lang="en"> 7541 <a xmlns="http://www.w3.org/1999/xhtml" id="id 498897"></a>7543 <a xmlns="http://www.w3.org/1999/xhtml" id="id372876"></a> 7542 7544 <div class="header">Arguments and Values:</div> 7543 7545 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">address-family</span></i>---The address/protocol family of this socket. Currently … … 7611 7613 specified number of seconds, an 7612 7614 <code xmlns="http://www.w3.org/1999/xhtml" class="literal">input-timeout</code> error is signalled. 7613 (see <a xmlns="http://www.w3.org/1999/xhtml" href="#Stream-Timeouts-And-Deadlines" title="10.1.4. Stream Timeouts and Deadlines">Section 10.1.4, âStream Timeouts and Deadlinesâ</a>)</p>7615 (see <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#Stream-Timeouts-And-Deadlines" title="10.1.4. Stream Timeouts and Deadlines">Section 10.1.4, âStream Timeouts and Deadlinesâ</a>)</p> 7614 7616 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">output-timeout</span></i>---The number of seconds before an output operation 7615 7617 times out. Must be a real number between zero and one … … 7617 7619 specified number of seconds, an 7618 7620 <code xmlns="http://www.w3.org/1999/xhtml" class="literal">output-timeout</code> error is signalled. 7619 (see <a xmlns="http://www.w3.org/1999/xhtml" href="#Stream-Timeouts-And-Deadlines" title="10.1.4. Stream Timeouts and Deadlines">Section 10.1.4, âStream Timeouts and Deadlinesâ</a>)</p>7621 (see <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#Stream-Timeouts-And-Deadlines" title="10.1.4. Stream Timeouts and Deadlines">Section 10.1.4, âStream Timeouts and Deadlinesâ</a>)</p> 7620 7622 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">connect-timeout</span></i>---The number of seconds before a connection 7621 7623 attempt times out. [TODO: what are acceptable values?] … … 7635 7637 <code xmlns="http://www.w3.org/1999/xhtml" class="literal">COMMUNICATION-DEADLINE-EXPIRED</code> 7636 7638 error is signalled. A deadline takes precedence over 7637 any input/output timeouts that may be set. (see <a xmlns="http://www.w3.org/1999/xhtml" href="#Stream-Timeouts-And-Deadlines" title="10.1.4. Stream Timeouts and Deadlines">Section 10.1.4, âStream Timeouts and Deadlinesâ</a>)</p>7638 </div> 7639 <div class="refsect1" lang="en" xml:lang="en"> 7640 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 58069"></a>7639 any input/output timeouts that may be set. (see <a xmlns="http://www.w3.org/1999/xhtml" class="xref" href="#Stream-Timeouts-And-Deadlines" title="10.1.4. Stream Timeouts and Deadlines">Section 10.1.4, âStream Timeouts and Deadlinesâ</a>)</p> 7640 </div> 7641 <div class="refsect1" lang="en" xml:lang="en"> 7642 <a xmlns="http://www.w3.org/1999/xhtml" id="id404926"></a> 7641 7643 <div class="header">Description:</div> 7642 7644 <p xmlns="http://www.w3.org/1999/xhtml">Creates and returns a new socket</p> … … 7649 7651 <strong>[Function]</strong> 7650 7652 <br></br> 7651 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">accept-connection</strong></span>7653 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>accept-connection</strong></span> 7652 7654 (socket listener-socket) <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> wait</code> 7653 7655 </div> … … 7657 7659 <div> 7658 7660 <div class="refsect1" lang="en" xml:lang="en"> 7659 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 30857"></a>7661 <a xmlns="http://www.w3.org/1999/xhtml" id="id404987"></a> 7660 7662 <div class="header">Arguments and Values:</div> 7661 7663 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The listener-socket to listen on.</p> … … 7665 7667 </div> 7666 7668 <div class="refsect1" lang="en" xml:lang="en"> 7667 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 73045"></a>7669 <a xmlns="http://www.w3.org/1999/xhtml" id="id405030"></a> 7668 7670 <div class="header">Description:</div> 7669 7671 <p xmlns="http://www.w3.org/1999/xhtml">Extracts the first connection on the queue of pending … … 7683 7685 <strong>[Function]</strong> 7684 7686 <br></br> 7685 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">dotted-to-ipaddr</strong></span>7687 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>dotted-to-ipaddr</strong></span> 7686 7688 dotted <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> errorp</code> 7687 7689 </div> … … 7691 7693 <div> 7692 7694 <div class="refsect1" lang="en" xml:lang="en"> 7693 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 95522"></a>7695 <a xmlns="http://www.w3.org/1999/xhtml" id="id405095"></a> 7694 7696 <div class="header">Arguments and Values:</div> 7695 7697 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">dotted</span></i>---A string representing an IP address in the … … 7699 7701 </div> 7700 7702 <div class="refsect1" lang="en" xml:lang="en"> 7701 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 82782"></a>7703 <a xmlns="http://www.w3.org/1999/xhtml" id="id405136"></a> 7702 7704 <div class="header">Description:</div> 7703 7705 <p xmlns="http://www.w3.org/1999/xhtml">Converts a dotted-string representation of a host address to … … 7711 7713 <strong>[Function]</strong> 7712 7714 <br></br> 7713 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">ipaddr-to-dotted</strong></span>7715 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>ipaddr-to-dotted</strong></span> 7714 7716 ipaddr <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> values</code> 7715 7717 </div> … … 7719 7721 <div> 7720 7722 <div class="refsect1" lang="en" xml:lang="en"> 7721 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 59506"></a>7723 <a xmlns="http://www.w3.org/1999/xhtml" id="id405198"></a> 7722 7724 <div class="header">Arguments and Values:</div> 7723 7725 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">ipaddr</span></i>---A 32-bit integer representing an internet host address</p> … … 7728 7730 </div> 7729 7731 <div class="refsect1" lang="en" xml:lang="en"> 7730 <a xmlns="http://www.w3.org/1999/xhtml" id="id 502645"></a>7732 <a xmlns="http://www.w3.org/1999/xhtml" id="id403555"></a> 7731 7733 <div class="header">Description:</div> 7732 7734 <p xmlns="http://www.w3.org/1999/xhtml">Converts a 32-bit unsigned IP address into octets.</p> … … 7739 7741 <strong>[Function]</strong> 7740 7742 <br></br> 7741 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">ipaddr-to-hostname</strong></span>7743 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>ipaddr-to-hostname</strong></span> 7742 7744 ipaddr <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> ignore-cache</code> 7743 7745 </div> … … 7747 7749 <div> 7748 7750 <div class="refsect1" lang="en" xml:lang="en"> 7749 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 51113"></a>7751 <a xmlns="http://www.w3.org/1999/xhtml" id="id403616"></a> 7750 7752 <div class="header">Arguments and Values:</div> 7751 7753 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">ipaddr</span></i>---a 32-bit integer representing an internet host address</p> … … 7754 7756 </div> 7755 7757 <div class="refsect1" lang="en" xml:lang="en"> 7756 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 70273"></a>7758 <a xmlns="http://www.w3.org/1999/xhtml" id="id403657"></a> 7757 7759 <div class="header">Description:</div> 7758 7760 <p xmlns="http://www.w3.org/1999/xhtml">Converts a 32-bit unsigned IP address into a host name … … 7766 7768 <strong>[Function]</strong> 7767 7769 <br></br> 7768 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">lookup-hostname</strong></span>7770 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>lookup-hostname</strong></span> 7769 7771 host</code> 7770 7772 </div> … … 7774 7776 <div> 7775 7777 <div class="refsect1" lang="en" xml:lang="en"> 7776 <a xmlns="http://www.w3.org/1999/xhtml" id="id 501148"></a>7778 <a xmlns="http://www.w3.org/1999/xhtml" id="id403714"></a> 7777 7779 <div class="header">Arguments and Values:</div> 7778 7780 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">host</span></i>---Specifies the host. It can be either a host name … … 7782 7784 </div> 7783 7785 <div class="refsect1" lang="en" xml:lang="en"> 7784 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 33781"></a>7786 <a xmlns="http://www.w3.org/1999/xhtml" id="id403742"></a> 7785 7787 <div class="header">Description:</div> 7786 7788 <p xmlns="http://www.w3.org/1999/xhtml">Converts a host spec in any of the acceptable formats into a … … 7794 7796 <strong>[Function]</strong> 7795 7797 <br></br> 7796 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">lookup-port</strong></span>7798 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>lookup-port</strong></span> 7797 7799 port protocol</code> 7798 7800 </div> … … 7802 7804 <div> 7803 7805 <div class="refsect1" lang="en" xml:lang="en"> 7804 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 75043"></a>7806 <a xmlns="http://www.w3.org/1999/xhtml" id="id403800"></a> 7805 7807 <div class="header">Arguments and Values:</div> 7806 7808 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">port</span></i>---Specifies the port. It can be either a string, such as … … 7811 7813 </div> 7812 7814 <div class="refsect1" lang="en" xml:lang="en"> 7813 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 88453"></a>7815 <a xmlns="http://www.w3.org/1999/xhtml" id="id403842"></a> 7814 7816 <div class="header">Description:</div> 7815 7817 <p xmlns="http://www.w3.org/1999/xhtml">Finds the port number for the specified port and protocol</p> … … 7822 7824 <strong>[Function]</strong> 7823 7825 <br></br> 7824 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">receive-from</strong></span>7826 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>receive-from</strong></span> 7825 7827 (socket udp-socket) size <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> buffer 7826 7828 extract offset</code> … … 7831 7833 <div> 7832 7834 <div class="refsect1" lang="en" xml:lang="en"> 7833 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 28852"></a>7835 <a xmlns="http://www.w3.org/1999/xhtml" id="id403904"></a> 7834 7836 <div class="header">Arguments and Values:</div> 7835 7837 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket to read from</p> … … 7848 7850 </div> 7849 7851 <div class="refsect1" lang="en" xml:lang="en"> 7850 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 46788"></a>7852 <a xmlns="http://www.w3.org/1999/xhtml" id="id403994"></a> 7851 7853 <div class="header">Description:</div> 7852 7854 <p xmlns="http://www.w3.org/1999/xhtml">Reads a UDP packet from a socket. If no packets are … … 7876 7878 <strong>[Function]</strong> 7877 7879 <br></br> 7878 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">send-to</strong></span>7880 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>send-to</strong></span> 7879 7881 (socket udp-socket) buffer size <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> remote-host 7880 7882 remote-port offset</code> … … 7885 7887 <div> 7886 7888 <div class="refsect1" lang="en" xml:lang="en"> 7887 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 35843"></a>7889 <a xmlns="http://www.w3.org/1999/xhtml" id="id404109"></a> 7888 7890 <div class="header">Arguments and Values:</div> 7889 7891 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket to write to</p> … … 7901 7903 </div> 7902 7904 <div class="refsect1" lang="en" xml:lang="en"> 7903 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 74272"></a>7905 <a xmlns="http://www.w3.org/1999/xhtml" id="id404213"></a> 7904 7906 <div class="header">Description:</div> 7905 7907 <p xmlns="http://www.w3.org/1999/xhtml">Send a UDP packet over a socket.</p> … … 7912 7914 <strong>[Function]</strong> 7913 7915 <br></br> 7914 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">shutdown</strong></span>7916 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>shutdown</strong></span> 7915 7917 socket <em xmlns="http://www.w3.org/1999/xhtml" class="varname">&key</em> direction</code> 7916 7918 </div> … … 7920 7922 <div> 7921 7923 <div class="refsect1" lang="en" xml:lang="en"> 7922 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 62324"></a>7924 <a xmlns="http://www.w3.org/1999/xhtml" id="id404274"></a> 7923 7925 <div class="header">Arguments and Values:</div> 7924 7926 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket to shut down (typically a tcp-stream)</p> … … 7927 7929 </div> 7928 7930 <div class="refsect1" lang="en" xml:lang="en"> 7929 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 62135"></a>7931 <a xmlns="http://www.w3.org/1999/xhtml" id="id404315"></a> 7930 7932 <div class="header">Description:</div> 7931 7933 <p xmlns="http://www.w3.org/1999/xhtml">Shuts down part of a bidirectional connection. This is … … 7940 7942 <strong>[Function]</strong> 7941 7943 <br></br> 7942 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">socket-os-fd</strong></span>7944 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>socket-os-fd</strong></span> 7943 7945 socket</code> 7944 7946 </div> … … 7948 7950 <div> 7949 7951 <div class="refsect1" lang="en" xml:lang="en"> 7950 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 48673"></a>7952 <a xmlns="http://www.w3.org/1999/xhtml" id="id404374"></a> 7951 7953 <div class="header">Arguments and Values:</div> 7952 7954 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket</p> 7953 7955 </div> 7954 7956 <div class="refsect1" lang="en" xml:lang="en"> 7955 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 63587"></a>7957 <a xmlns="http://www.w3.org/1999/xhtml" id="id404400"></a> 7956 7958 <div class="header">Description:</div> 7957 7959 <p xmlns="http://www.w3.org/1999/xhtml">Returns the native OS's representation of the socket, or … … 7970 7972 <strong>[Function]</strong> 7971 7973 <br></br> 7972 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">remote-host</strong></span>7974 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>remote-host</strong></span> 7973 7975 socket</code> 7974 7976 </div> … … 7978 7980 <div> 7979 7981 <div class="refsect1" lang="en" xml:lang="en"> 7980 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 43064"></a>7982 <a xmlns="http://www.w3.org/1999/xhtml" id="id404461"></a> 7981 7983 <div class="header">Arguments and Values:</div> 7982 7984 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket</p> 7983 7985 </div> 7984 7986 <div class="refsect1" lang="en" xml:lang="en"> 7985 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 61811"></a>7987 <a xmlns="http://www.w3.org/1999/xhtml" id="id404487"></a> 7986 7988 <div class="header">Description:</div> 7987 7989 <p xmlns="http://www.w3.org/1999/xhtml">Returns the 32-bit unsigned IP address of the remote host, … … 7995 7997 <strong>[Function]</strong> 7996 7998 <br></br> 7997 <code><span xmlns="http://www.w3.org/1999/xhtml" ><strong class="function">remote-port</strong></span>7999 <code><span xmlns="http://www.w3.org/1999/xhtml" class="function"><strong>remote-port</strong></span> 7998 8000 socket</code> 7999 8001 </div> … … 8003 8005 <div> 8004 8006 <div class="refsect1" lang="en" xml:lang="en"> 8005 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 34816"></a>8007 <a xmlns="http://www.w3.org/1999/xhtml" id="id404545"></a> 8006 8008 <div class="header">Arguments and Values:</div> 8007 8009 <p><i><span xmlns="http://www.w3.org/1999/xhtml" class="term">socket</span></i>---The socket</p> 8008 8010 </div> 8009 8011 <div class="refsect1" lang="en" xml:lang="en"> 8010 <a xmlns="http://www.w3.org/1999/xhtml" id="id4 30162"></a>8012 <a xmlns="http://www.w3.org/1999/xhtml" id="id404571"></a> 8011 8013 <div class="header">Description:</div> 8012 8014 <p xmlns="http://www.w3.org/1999/xhtml">Returns the remote port number, or NIL if the socket is not … … 8020 8022