force use of pandoc version >= 3.1.12.2
The `bin/pandoc-wrapper.sh` tool will verify that the ssytem has a recent enough version of `pandoc(1)`. We explain why we insist on `pandoc(1)`. version >= 3.1.12.2 in comments where the $PANDOC_MIN_VERSION is set. Added `--wrap=preserve` as a default argument to `pandoc(1)`. While this change will impact every HTML file generated, we believe this will improve the ability of someone to look at the generated HTML and correlate with the original markdown. Changed `bin/pandoc-wrapper.sh` VERSION from "1.4.2 2024-03-17" to "1.4.3 2024-03-18". Performed `make www` to achieve all of the above and to generate HTML using the new `--wrap=preserve` `pandoc(1)` mode.
This commit is contained in:
1 parent
9eb7a54e9f
commit
b0b212acb1
402 files changed
+37061
-55132
No files matched your search
+73
-111
@@ -129,9 +129,9 @@
|
||||
|
||||
<h2 id="author"><a name="author"></a>Author:</h2>
|
||||
<ul>
|
||||
<li>Name: <a href="../../authors.html#Fabrice_Bellard">Fabrice
|
||||
Bellard</a><br> Location: <a href="../../location.html#FR">FR</a> -
|
||||
<em>French Republic</em> (<em>France</em>) <br><br></li>
|
||||
<li>Name: <a href="../../authors.html#Fabrice_Bellard">Fabrice Bellard</a><br>
|
||||
Location: <a href="../../location.html#FR">FR</a> - <em>French Republic</em> (<em>France</em>)
|
||||
<br><br></li>
|
||||
</ul>
|
||||
|
||||
<!-- END: next line ends content generated by: bin/output-index-author.sh -->
|
||||
@@ -145,8 +145,7 @@ Bellard</a><br> Location: <a href="../../location.html#FR">FR</a> -
|
||||
<p>The current status of this entry is:</p>
|
||||
<pre><code>STATUS: INABIAF - please **DO NOT** fix
|
||||
STATUS: doesn't work with some platforms - please help us fix</code></pre>
|
||||
<p>For more detailed information see <a
|
||||
href="../../bugs.html#2001_bellard">2001 bellard bugs</a>.</p>
|
||||
<p>For more detailed information see <a href="../../bugs.html#2001_bellard">2001 bellard bugs</a>.</p>
|
||||
<h2 id="to-use">To use:</h2>
|
||||
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./bellard</span> file</span></code></pre></div>
|
||||
<h2 id="try">Try:</h2>
|
||||
@@ -154,18 +153,17 @@ href="../../bugs.html#2001_bellard">2001 bellard bugs</a>.</p>
|
||||
<h2 id="judges-remarks">Judges’ remarks:</h2>
|
||||
<p><code><JUDGES_COMMENTS></code> :-)</p>
|
||||
<h2 id="authors-remarks">Author’s remarks:</h2>
|
||||
<p><code>OTCC</code> is an Obfuscated Tiny C Compiler for i386-linux. It
|
||||
generates FAST! i386 32 bit code (no bytecode) and it is powerful enough
|
||||
to compile itself. <code>OTCC</code> supports a strict subset of C. This
|
||||
subset is compilable by a standard ANSI C compiler. <code>OTCC</code>
|
||||
compiles, assembles, links and runs C code without the need of any other
|
||||
<p><code>OTCC</code> is an Obfuscated Tiny C Compiler for i386-linux. It generates
|
||||
FAST! i386 32 bit code (no bytecode) and it is powerful enough to
|
||||
compile itself. <code>OTCC</code> supports a strict subset of C. This subset is
|
||||
compilable by a standard ANSI C compiler. <code>OTCC</code> compiles,
|
||||
assembles, links and runs C code without the need of any other
|
||||
program.</p>
|
||||
<p>You can use it by typing:</p>
|
||||
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./bellard</span> bellard.c <span class="pp">[</span><span class="ss">args</span><span class="pp">]</span>...</span></code></pre></div>
|
||||
<p>or by giving the C source to its standard input.</p>
|
||||
<p><code>args</code> are given to the <code>main()</code> function of
|
||||
<code>bellard.c</code> (<code>argv[0]</code> is <a
|
||||
href="bellard.c">bellard.c</a>).</p>
|
||||
<p><code>args</code> are given to the <code>main()</code> function of <code>bellard.c</code> (<code>argv[0]</code> is
|
||||
<a href="bellard.c">bellard.c</a>).</p>
|
||||
<h3 id="examples">Examples:</h3>
|
||||
<ul>
|
||||
<li>Sample compilation and execution:</li>
|
||||
@@ -179,67 +177,53 @@ href="bellard.c">bellard.c</a>).</p>
|
||||
<li>Self compilation iterated…</li>
|
||||
</ul>
|
||||
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./bellard</span> bellard.c bellard.c bellard.otccex.c 10</span></code></pre></div>
|
||||
<p>An alternate syntax is to use it as a script interpreter: you can put
|
||||
<code>#!/usr/local/bin/otcc</code> at the beginning of your C source if
|
||||
<p>An alternate syntax is to use it as a script interpreter: you can
|
||||
put <code>#!/usr/local/bin/otcc</code> at the beginning of your C source if
|
||||
you installed <code>otcc</code> at this place.</p>
|
||||
<h3
|
||||
id="supported-c-language-subset-read-joint-example-bellard.otccex.c-to-have-an-introduction-to-otcc-dialect">Supported
|
||||
C language subset (read joint example <a
|
||||
href="bellard.otccex.c">bellard.otccex.c</a> to have an introduction to
|
||||
<code>OTCC</code> dialect)</h3>
|
||||
<h3 id="supported-c-language-subset-read-joint-example-bellard.otccex.c-to-have-an-introduction-to-otcc-dialect">Supported C language subset (read joint example <a href="bellard.otccex.c">bellard.otccex.c</a> to have an introduction to <code>OTCC</code> dialect)</h3>
|
||||
<h4 id="expressions">Expressions:</h4>
|
||||
<ul>
|
||||
<li><p>binary operators, in decreasing precedence order: <code>*</code>
|
||||
<code>/</code> <code>%</code>, <code>+</code> <code>-</code>,
|
||||
<code>>></code> <code><<</code>, <code><</code>
|
||||
<code><=</code> <code>></code> <code>>=</code>, <code>==</code>
|
||||
<code>!=</code>, <code>&</code>, <code>^</code>, <code>|</code>,
|
||||
<code>=</code>, <code>&&</code>, <code>||</code>.</p></li>
|
||||
<li><p><code>&&</code> and <code>||</code> have the same
|
||||
semantics as in C: left to right evaluation and early exit
|
||||
(short-circuited).</p></li>
|
||||
<li><p>binary operators, in decreasing precedence order: <code>*</code> <code>/</code> <code>%</code>,
|
||||
<code>+</code> <code>-</code>, <code>>></code> <code><<</code>, <code><</code> <code><=</code> <code>></code> <code>>=</code>, <code>==</code> <code>!=</code>, <code>&</code>,
|
||||
<code>^</code>, <code>|</code>, <code>=</code>, <code>&&</code>, <code>||</code>.</p></li>
|
||||
<li><p><code>&&</code> and <code>||</code> have the same semantics as in C: left to right
|
||||
evaluation and early exit (short-circuited).</p></li>
|
||||
<li><p>Parenthesis are supported.</p></li>
|
||||
<li><p>Unary operators: <code>&</code>, <code>*</code> (pointer
|
||||
indirection), <code>-</code> (negation), <code>+</code>, <code>!</code>,
|
||||
<code>~</code>, postfix <code>++</code> and <code>--</code>.</p></li>
|
||||
<li><p>Pointer indirection (<code>*</code>) only works with explicit
|
||||
cast to <code>char *</code>, <code>int *</code> or
|
||||
<code>int (*)()</code> (function pointer).</p></li>
|
||||
<li><p><code>++</code>, <code>--</code>, and unary <code>&</code>
|
||||
can only be used with variable lvalue (left value).</p></li>
|
||||
<li><p><code>=</code> can only be used with variable or <code>*</code>
|
||||
(pointer indirection) lvalue.</p></li>
|
||||
<li><p>Function calls are supported <em>with standard
|
||||
<strong>i386</strong> calling convention</em>. Function pointers are
|
||||
supported <em>with explicit cast</em>. Functions can be used before
|
||||
being declared.</p></li>
|
||||
<li><p>Types: only signed integer (<code>int</code>) variables and
|
||||
functions can be declared. Variables cannot be initialized in
|
||||
<li><p>Unary operators: <code>&</code>, <code>*</code> (pointer indirection), <code>-</code>
|
||||
(negation), <code>+</code>, <code>!</code>, <code>~</code>, postfix <code>++</code> and <code>--</code>.</p></li>
|
||||
<li><p>Pointer indirection (<code>*</code>) only works with explicit cast to
|
||||
<code>char *</code>, <code>int *</code> or <code>int (*)()</code> (function pointer).</p></li>
|
||||
<li><p><code>++</code>, <code>--</code>, and unary <code>&</code> can only be used with variable
|
||||
lvalue (left value).</p></li>
|
||||
<li><p><code>=</code> can only be used with variable or <code>*</code> (pointer
|
||||
indirection) lvalue.</p></li>
|
||||
<li><p>Function calls are supported <em>with standard <strong>i386</strong> calling
|
||||
convention</em>. Function pointers are supported <em>with explicit
|
||||
cast</em>. Functions can be used before being declared.</p></li>
|
||||
<li><p>Types: only signed integer (<code>int</code>) variables and functions can
|
||||
be declared. Variables cannot be initialized in
|
||||
declarations. <em>Only old K&R function declarations are parsed
|
||||
(implicit integer return value and no types on arguments)</em>.</p></li>
|
||||
<li><p>Any function or variable from the libc can be used because
|
||||
<code>OTCC</code> uses the libc dynamic linker to resolve undefined
|
||||
symbols.</p></li>
|
||||
<li><p>Instructions: blocks (<code>{</code> <code>}</code>) are
|
||||
supported as in C. <code>if</code> and <code>else</code> can be used for
|
||||
tests. The <code>while</code> and <code>for</code> C loops are
|
||||
supported. <code>break</code> can be used to exit loops.
|
||||
<code>return</code> is used for the return value of a function.</p></li>
|
||||
<li><p>Any function or variable from the libc can be used because <code>OTCC</code>
|
||||
uses the libc dynamic linker to resolve undefined symbols.</p></li>
|
||||
<li><p>Instructions: blocks (<code>{</code> <code>}</code>) are supported as in C. <code>if</code> and
|
||||
<code>else</code> can be used for tests. The <code>while</code> and <code>for</code> C loops are supported.
|
||||
<code>break</code> can be used to exit loops. <code>return</code> is used for the return value of a
|
||||
function.</p></li>
|
||||
<li><p>Identifiers are parsed the same way as C. Local variables are
|
||||
handled, but there is no local name space (not a problem if different
|
||||
names are used for local and global variables).</p></li>
|
||||
<li><p>Numbers can be entered in decimal, hexadecimal (<code>0x</code>
|
||||
or <code>0X</code> prefix), or octal (<code>0</code> prefix).</p></li>
|
||||
<li><p><code>#define</code> is supported without function like
|
||||
arguments. <em>No macro recursion is tolerated</em>; <em>other
|
||||
preprocessor directives are ignored</em>.</p></li>
|
||||
<li><p>C Strings and C character constants are supported. Only
|
||||
<code>\n</code>, <code>\"</code>, <code>\'</code> and <code>\\</code>
|
||||
escapes are recognized.</p></li>
|
||||
handled, but there is no local name space (not a problem if
|
||||
different names are used for local and global variables).</p></li>
|
||||
<li><p>Numbers can be entered in decimal, hexadecimal (<code>0x</code> or <code>0X</code>
|
||||
prefix), or octal (<code>0</code> prefix).</p></li>
|
||||
<li><p><code>#define</code> is supported without function like arguments. <em>No macro
|
||||
recursion is tolerated</em>; <em>other preprocessor directives are
|
||||
ignored</em>.</p></li>
|
||||
<li><p>C Strings and C character constants are supported. Only <code>\n</code>,
|
||||
<code>\"</code>, <code>\'</code> and <code>\\</code> escapes are recognized.</p></li>
|
||||
<li><p>C Comments can be used (but no C++ comments).</p></li>
|
||||
<li><p>No error is displayed if an incorrect program is given.</p></li>
|
||||
<li><p>Memory: the code, data, and symbol sizes are limited to 100KB (it
|
||||
can be changed in the source code).</p></li>
|
||||
<li><p>Memory: the code, data, and symbol sizes are limited to 100KB
|
||||
(it can be changed in the source code).</p></li>
|
||||
</ul>
|
||||
<h3 id="obfuscation">Obfuscation:</h3>
|
||||
<p>No special effort was needed because obfuscation is almost
|
||||
@@ -247,68 +231,46 @@ unavoidable for such a program :-) <code>#define</code>s must be used to
|
||||
compress the code, and integrated i386 code generator leads to non
|
||||
obvious code.</p>
|
||||
<h3 id="portability">Portability:</h3>
|
||||
<p><code>OTCC</code> only works on i386 linux because it generates i386
|
||||
code. <code>OTCC</code> also relies on little endianness, unaligned
|
||||
memory accesses and ASCII representation of characters. It also supposes
|
||||
that no valid pointers are less than 512. If all those constraints are
|
||||
met, then <code>OTCC</code> could be theoretically used to “cross
|
||||
compile”, although no such support is currently integrated.</p>
|
||||
<p><code>OTCC</code> only works on i386 linux because it generates i386 code. <code>OTCC</code>
|
||||
also relies on little endianness, unaligned memory accesses and
|
||||
ASCII representation of characters. It also supposes that no valid
|
||||
pointers are less than 512. If all those constraints are met, then
|
||||
<code>OTCC</code> could be theoretically used to “cross compile”, although no
|
||||
such support is currently integrated.</p>
|
||||
<p>It was successfully compiled with gcc version 2.95.2. You get some
|
||||
warnings because old K&R prototypes are used, some casts are
|
||||
implicit and some functions are used before being defined.
|
||||
<code>OTCC</code> uses the dynamic linker to resolve symbols with
|
||||
<code>dlsym(3)</code>, so <code>-ldl</code> must be used when you
|
||||
compile and link it.</p>
|
||||
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0
|
||||
License:</h2>
|
||||
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights
|
||||
Reserved. You are free to share and adapt this file under the terms of
|
||||
this license:</p>
|
||||
warnings because old K&R prototypes are used, some casts are implicit
|
||||
and some functions are used before being defined. <code>OTCC</code> uses the
|
||||
dynamic linker to resolve symbols with <code>dlsym(3)</code>, so <code>-ldl</code> must
|
||||
be used when you compile and link it.</p>
|
||||
<h2 id="copyright-and-cc-by-sa-4.0-license">Copyright and CC BY-SA 4.0 License:</h2>
|
||||
<p>This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
|
||||
You are free to share and adapt this file under the terms of this license:</p>
|
||||
<pre><code>Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</code></pre>
|
||||
<p>For more information, see:
|
||||
https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
<p>For more information, see: https://creativecommons.org/licenses/by-sa/4.0/</p>
|
||||
|
||||
<!-- END: this line ends content for HTML phase 21 by: bin/pandoc-wrapper.sh via bin/md2html.sh -->
|
||||
<!-- START: this line starts content for HTML phase 22 by: bin/output-index-inventory.sh via bin/md2html.sh -->
|
||||
|
||||
<!-- START: this line starts content generated by: bin/output-index-inventory.sh -->
|
||||
|
||||
<h1 id="inventory-for-2001bellard"><a name="inventory"></a>Inventory for
|
||||
2001/bellard</h1>
|
||||
<h1 id="inventory-for-2001bellard"><a name="inventory"></a>Inventory for 2001/bellard</h1>
|
||||
<p><a href="#top">Jump to top</a></p>
|
||||
<h2 id="primary-files">Primary files</h2>
|
||||
<ul>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/bellard.c">bellard.c</a>
|
||||
- entry source</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/Makefile">Makefile</a>
|
||||
- entry Makefile</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/bellard.orig.c">bellard.orig.c</a>
|
||||
- original source</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/bellard.otccex.c">bellard.otccex.c</a>
|
||||
- example otcc source</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/otccelf.c">otccelf.c</a>
|
||||
- another example otcc source</li>
|
||||
<li><a href="2001_bellard.tar.bz2">2001_bellard.tar.bz2</a> - download
|
||||
entry source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/bellard.c">bellard.c</a> - entry source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/Makefile">Makefile</a> - entry Makefile</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/bellard.orig.c">bellard.orig.c</a> - original source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/bellard.otccex.c">bellard.otccex.c</a> - example otcc source</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/otccelf.c">otccelf.c</a> - another example otcc source</li>
|
||||
<li><a href="2001_bellard.tar.bz2">2001_bellard.tar.bz2</a> - download entry source</li>
|
||||
</ul>
|
||||
<h2 id="secondary-files">Secondary files</h2>
|
||||
<ul>
|
||||
<li><a href="index.html">index.html</a> - entry home page</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/.entry.json">.entry.json</a>
|
||||
- description of entry in JSON</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/.gitignore">.gitignore</a>
|
||||
- list of files that should not be committed under git</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/.entry.json">.entry.json</a> - description of entry in JSON</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/.gitignore">.gitignore</a> - list of files that should not be committed under git</li>
|
||||
<li><a href=".path">.path</a> - directory path from top directory</li>
|
||||
<li><a
|
||||
href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/README.md">README.md</a>
|
||||
- markdown source for index.html</li>
|
||||
<li><a href="https://github.com/ioccc-src/temp-test-ioccc/blob/master/2001/bellard/README.md">README.md</a> - markdown source for index.html</li>
|
||||
</ul>
|
||||
|
||||
<!-- END: next line ends content generated by: bin/output-index-inventory.sh -->
|
||||
|
||||
Reference in new issue
Block a user