<a name="l3"></a></span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.html#l186"><span class=cF4>JIT Compile Mode</span></a><span class=cF0> makes use of the current task's hash sym table and its parent tasks' tables. It fetches syms from parent
<a name="l8"></a>in many cases, especially in asm blks. Dupicates are allowed, by design in other cases, so that you can repeatedly </span><span class=cF2>#include</span><span class=cF0> the
<a name="l9"></a>same file from the cmd line while developing it. Or, so you can repeatedly declare a function with a standard name, like </span><span class=cF2>Draw
<a name="l10"></a>It()</span><span class=cF0>. This case might occur when the </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.html#l154"><span class=cF4>System Task</span></a><span class=cF0> is starting-up loading-in many little utilities.
<a name="l12"></a></span><span class=cF2>extern</span><span class=cF0> binds a new </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.html#l827"><span class=cF4>HTT_FUN</span></a><span class=cF0> or </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.html#l824"><span class=cF4>HTT_GLOBAL_VAR</span></a><span class=cF0> sym to an existing sym of the same name if it exists in the sym table (just in
<a name="l15"></a></span><span class=cF2>import</span><span class=cF0> binds a new </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.html#l827"><span class=cF4>HTT_FUN</span></a><span class=cF0> or </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.html#l824"><span class=cF4>HTT_GLOBAL_VAR</span></a><span class=cF0> sym to a sym of the same name imported from the task's sym table at </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KLoad.html#l208"><span class=cF4>Load</span></a><span class=cF0>() time.
<a name="l16"></a>If no sym exists to bind to at </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KLoad.html#l208"><span class=cF4>Load</span></a><span class=cF0>() time, the code using this sym will be left incomplete until the sym is defined.
<a name="l19"></a></span><span class=cF2>_extern</span><span class=cF0> binds a new </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.html#l827"><span class=cF4>HTT_FUN</span></a><span class=cF0> or </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.html#l824"><span class=cF4>HTT_GLOBAL_VAR</span></a><span class=cF0> sym to an existing sym, of a <blink>different</blink> name. It must exists in the sym table.
<a name="l22"></a></span><span class=cF2>_import</span><span class=cF0> binds a new </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.html#l827"><span class=cF4>HTT_FUN</span></a><span class=cF0> or </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.html#l824"><span class=cF4>HTT_GLOBAL_VAR</span></a><span class=cF0> sym to a sym, of a <blink>different</blink> name imported from the task's sym table at </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KLoad.html#l208"><span class=cF4>Load</span></a><span class=cF0>()
<a name="l23"></a>time. If no sym exists to bind to at </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KLoad.html#l208"><span class=cF4>Load</span></a><span class=cF0>() time, the code using this sym will be left incomplete until the sym is defined.
<a name="l104"></a>add code to fix this. You will get errors if a collision happens, so it's not very dangerous, but the error message is
<a name="l105"></a>baffling.
<a name="l106"></a>
<a name="l107"></a>* The member names </span><span class=cF2>pad</span><span class=cF0> and </span><span class=cF2>reserved</span><span class=cF0> are special because multiple instances with the same name are allowed in a class.
<a name="l109"></a>* Use </span><span class=cF2>reg</span><span class=cF0> or </span><span class=cF2>noreg</span><span class=cF0> in front of local var names to override automatic reg var allocation. You can, optionally, specify a reg
<a name="l110"></a>after the </span><span class=cF2>reg</span><span class=cF0> keyword.
<a name="l111"></a>
<a name="l112"></a>* Local non-reg function vars can be accessed in asm blks with </span><span class=cF2>&i[RBP]</span><span class=cF0> for example.
<a name="l113"></a>
<a name="l114"></a>* Global vars and functions can be accessed in asm with and </span><span class=cF2>&</span><span class=cF0> as in
<a name="l125"></a>* Using </span><span class=cF2>&i</span><span class=cF0> in </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> or </span><span class=cF2>i.u8[2]</span><span class=cF0> on a local var, </span><span class=cF2>i</span><span class=cF0>, will force it to </span><span class=cF2>noreg</span><span class=cF0>.
<a name="l127"></a>* Using </span><span class=cF2>try</span><span class=cF0>/</span><span class=cF2>catch</span><span class=cF0> in a function will force all local vars to </span><span class=cF2>noreg</span><span class=cF0>.
<a name="l128"></a>
<a name="l129"></a>* An unused gap on the stack is left for </span><span class=cF2>reg</span><span class=cF0> vars.
<a name="l131"></a>* Note: </span><span class=cF2>static</span><span class=cF0> function vars do not go on the data heap, no matter the setting of the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.html#l1684"><span class=cF4>OPTf_GLOBALS_ON_DATA_HEAP</span></a><span class=cF0>. They may in
<a name="l134"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.html#l1681"><span class=cF4>OPTf_EXTERNS_TO_IMPORTS</span></a><span class=cF0> will treat </span><span class=cF2>_extern</span><span class=cF0> as </span><span class=cF2>_import</span><span class=cF0> and </span><span class=cF2>extern</span><span class=cF0> as </span><span class=cF2>import</span><span class=cF0>. This allows a header to be used either as a </span><span class=cF2>JIT