Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: FIXME
Upstream-Contact: FIXME
Source: FIXME
Disclaimer: Autogenerated by licensecheck

Files: Makefile
 Makefile.pdlibbuilder
 doc/Makefile
 doc/internal.txt
 doc/lua.txt
 doc/luax.txt
 doc/pdlua.tex
 pdlua-help.pd
 pdlua-meta.pd
 pdlua/examples/complex-help.pd
 pdlua/examples/complex.pd_lua
 pdlua/examples/complex.pd_luax
 pdlua/examples/dispatchertest-help.pd
 pdlua/examples/dispatchertest.pd_lua
 pdlua/examples/dispatchertest.pd_luax
 pdlua/examples/dumptypes.pd_luax
 pdlua/examples/errors-help.pd
 pdlua/examples/errors.pd_lua
 pdlua/examples/ldelay-help.pd
 pdlua/examples/ldelay.pd_lua
 pdlua/examples/ldelay2-help.pd
 pdlua/examples/ldelay2.pd_lua
 pdlua/examples/ldemux-help.pd
 pdlua/examples/ldemux.pd_lua
 pdlua/examples/lexpr-help.pd
 pdlua/examples/lexpr.pd_lua
 pdlua/examples/lfloat2bytes-help.pd
 pdlua/examples/lfloat2bytes.pd_lua
 pdlua/examples/list-pak-help.pd
 pdlua/examples/list-pak.pd_lua
 pdlua/examples/list-unpack-help.pd
 pdlua/examples/list-unpack.pd_lua
 pdlua/examples/llist-drip-help.pd
 pdlua/examples/llist-drip.pd_lua
 pdlua/examples/llist-rdrip-help.pd
 pdlua/examples/llist-rdrip.pd_lua
 pdlua/examples/lpipe-help.pd
 pdlua/examples/lpipe.pd_lua
 pdlua/examples/lreceive-help.pd
 pdlua/examples/lreceive.pd_lua
 pdlua/examples/lsend-help.pd
 pdlua/examples/lsend.pd_lua
 pdlua/examples/lsymbol-drip-help.pd
 pdlua/examples/lsymbol-drip.pd_lua
 pdlua/examples/lsymbol2bytes-help.pd
 pdlua/examples/lsymbol2bytes.pd_lua
 pdlua/examples/ltabdump-help.pd
 pdlua/examples/ltabdump.pd_lua
 pdlua/examples/ltabfill-help.pd
 pdlua/examples/ltabfill.pd_lua
 pdlua/examples/ltextfile-drip-help.pd
 pdlua/examples/ltextfile-drip.pd_lua
 pdlua/examples/luametro-help.pd
 pdlua/examples/luametro.pd_lua
 pdlua/examples/lurn-help.pd
 pdlua/examples/lurn.pd_lua
 pdlua/examples/mutatee.pd_lua
 pdlua/examples/mutator-help.pd
 pdlua/examples/mutator.pd_lua
 pdlua/examples/nop-help.pd
 pdlua/examples/nop.pd_lua
 pdlua/examples/paths-example/hello.txt
 pdlua/examples/paths-example/lpaths-help.pd
 pdlua/examples/paths-example/lpaths.pd_lua
 pdlua/examples/paths-example/subdir/hello.txt
 pdlua/examples/paths-example/subdir/lpaths.pd_lua
 pdlua/examples/peekbag-help.pd
 pdlua/examples/peekbag.pd_lua
 pdlua/examples/requirer-help.pd
 pdlua/examples/requirer.pd_lua
 pdlua/examples/revalue-help.pd
 pdlua/examples/revalue.pd_lua
 pdlua/examples/reverb-calculator-help.pd
 pdlua/examples/reverb-calculator.pd_lua
 pdlua/examples/reverb.pd
 pdlua/examples/shared-help.pd
 pdlua/examples/shared.pd_lua
 pdlua/examples/shared.pd_luax
 pdlua/examples/simplecounter-help.pd
 pdlua/examples/simplecounter.pd_lua
 pdlua/examples/simplecounter.pd_luax
 pdlua/examples/swarm-help.pd
 pdlua/examples/swarm.pd_lua
 pdlua/hello-help.pd
 pdlua/hello.lua
 pdlua/hello.pd_lua
 pdlua/hello.pd_luax
 pdlua/tutorial/examples/fibs.pd
 pdlua/tutorial/examples/fibs.pd_lua
 pdlua/tutorial/examples/foo-test-luax.pd
 pdlua/tutorial/examples/foo-test.pd
 pdlua/tutorial/examples/foo.pd_luax
 pdlua/tutorial/examples/loadtest.lua
 pdlua/tutorial/examples/loadtest.pd
 pdlua/tutorial/examples/luarecv.pd
 pdlua/tutorial/examples/luarecv.pd_lua
 pdlua/tutorial/examples/luasend.pd
 pdlua/tutorial/examples/luasend.pd_lua
 pdlua/tutorial/examples/luatab.pd
 pdlua/tutorial/examples/luatab.pd_lua
 pdlua/tutorial/examples/pd-remote.pd
 pdlua/tutorial/examples/tictoc.pd
 pdlua/tutorial/examples/tictoc.pd_lua
 pdluax-help.pd
Copyright: NONE
License: UNKNOWN
 FIXME

Files: tutorial/pd-lua-intro.md
Copyright: Foo software.
  Foo software.")
License: CC-BY-SA-4.0
 FIXME

Files: pdlua/tutorial/examples/pd-remote.el
Copyright: 2023, Albert Graef
License: Expat
 FIXME

Files: COPYING
Copyright: 1989, 1991, Free Software Foundation, Inc.
License: GPL-2
 FIXME

Files: pdlua/tutorial/examples/pdx.lua
Copyright: 2020, Albert Gräf <aggraef@gmail.com>
License: GPL-2+
 FIXME

Files: README
Copyright: 2007-2009, 2013, Claude Heiland-Allen <claude@mathr.co.uk>
  2012, Martin Peach martin.peach@sympatico.ca
License: GPL-2+
 FIXME

Files: pd.lua
Copyright: 2007-2008, Claude Heiland-Allen <claude@mathr.co.uk>
  2012, Martin Peach martin.peach@sympatico.ca
  if nil ~= pd._clocks[c] then
License: GPL-2+
 FIXME

Files: pdlua.c
Copyright: 2007-2008, Claude Heiland-Allen <claude@mathr.co.uk>
  class_addmethod(c, (t_method)pdlua_menu_open, gensym("menu-open"), A_NULL); (mrpeach 20111025)
  clock_unset(c->clock);
License: GPL-2+
 FIXME

Files: pdlua/tutorial/examples/foo.pd_lua
Copyright: Foo software.")
License: UNKNOWN
 FIXME

Files: tutorial/pd-lua-intro.html
Copyright: Foo software."</span>)</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; &nbsp; &nbsp;<span class="cm-variable">foo.init</span> = <span class="cm-keyword">true</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; <span class="cm-keyword">end</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">end</span></span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 138px;"></div><div class="CodeMirror-gutters" style="display: none; height: 138px;"></div></div></div></pre><span>This will print the message just once, right after the first </span><code>foo</code><span> object is created. There&#39;s another </span><code>finalize</code><span> method which can be used to perform any kind of cleanup when an object gets destroyed. For instance, let&#39;s rework our example so that it keeps track of the actual number of </span><code>foo</code><span> objects, and prints an additional message when the last </span><code>foo</code><span> object is deleted. To these ends, we turn </span><code>foo.init</code><span> into a counter which keeps track of the number of </span><code>foo</code><span> objects:</span><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="lua" style="break-inside: unset;"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="lua"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.52344px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-variable">foo.init</span> = <span class="cm-number">0</span></span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
  Foo software."</span>)</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; <span class="cm-keyword">end</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; <span class="cm-variable">foo.init</span> = <span class="cm-variable">foo.init</span> + <span class="cm-number">1</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">end</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
  Foo software.</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">foo: initialized counter: 5, step size: 1</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">foo: initialized counter: 0, step size: 5</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">Thanks for using foo!</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 115px;"></div><div class="CodeMirror-gutters" style="display: none; height: 115px;"></div></div></div></pre><h3 id='lua-errors'><span>Lua errors</span></h3><span>We all make mistakes. It&#39;s inevitable that you&#39;ll run into errors in the Lua code you wrote, so let&#39;s finally discuss how those mishaps are handled. Pd-Lua simply reports errors from the Lua interpreter in the Pd console. For instance, suppose that we mistyped </span><code>pd.post</code><span> as </span><code>pd_post</code><span> in the code for the one-time welcome message above. You&#39;ll see an error message like this in the console:</span><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.52344px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">error: pdlua_new: error in constructor for `foo':</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">[string "foo"]:7: attempt to call a nil value (global 'pd_post')</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">error: couldn't create "foo"</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 69px;"></div><div class="CodeMirror-gutters" style="display: none; height: 69px;"></div></div></div></pre><span>In this case the error happened in the </span><code>initialize</code><span> method, so the object couldn&#39;t actually be created, and you will have to correct the typo before going on. Fortunately, the message tells us exactly where the error occurred, so we can fix it easily. Syntax errors anywhere in the script file will be caught and handled in a similar fashion.</span><span>Runtime errors in inlet methods, on the other hand, will allow your objects to be created and to start executing; they just won&#39;t behave as expected and cause somewhat cryptic errors to be printed in the console. For instance, let&#39;s suppose that you forgot the curly braces around the float value in </span><code>self:outlet</code><span> (a fairly common error), so that the method reads:</span><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="lua"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="lua"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.52344px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">function</span> <span class="cm-variable">foo</span>:<span class="cm-variable">in_1_bang</span>()</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; <span class="cm-variable">self</span>:<span class="cm-variable">outlet</span>(<span class="cm-number">1</span>, <span class="cm-string">"float"</span>, <span class="cm-variable">self.counter</span>) <span class="cm-comment">-- WRONG!</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; <span class="cm-variable">self.counter</span> = <span class="cm-variable">self.counter</span> + <span class="cm-variable">self.step</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">end</span></span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 92px;"></div><div class="CodeMirror-gutters" style="display: none; height: 92px;"></div></div></div></pre><span>Lua is a dynamically-typed language, so this little glitch becomes apparent only when you actually send a bang message to the object, which causes the following errors to be logged in the console:</span><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang=""><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang=""><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.52344px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation"><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">error: lua: error: not a table</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">... click the link above to track it down, or click the 'Find Last Error' item in the Edit menu.</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;">error: lua: error: no atoms??</span></pre></div></div></div></div></div><div style="position: absolute; height: 0px; width: 1px; border-bottom: 0px solid transparent; top: 92px;"></div><div class="CodeMirror-gutters" style="display: none; height: 92px;"></div></div></div></pre><span>Ok, so the first message tells us that </span><em><span>somewhere</span></em><span> Pd-Lua expected a table but got a non-table value. The second message actually comes from the C routine deep down in the bowls of Pd-Lua which does the actual output to an outlet. If you see that message, it&#39;s a telltale sign that you tried to output an atom not properly wrapped in a Lua table, but it gives no indication of where that happened either, other than that you can use &quot;Find Last Error&quot; to locate the object which caused the problem.</span><span>It goes without saying that the Pd-Lua developers could have chosen a better error message there. Well, at least we now have an idea what happened and in which object, but we may then still have to start peppering our code with </span><code>pd.post</code><span> calls in order to find (and fix) the issue.</span><h2 id='inlets-and-outlets'><span>Inlets and outlets</span></h2><span>As we&#39;ve already seen, the number of inlets and outlets is set with the </span><code>inlets</code><span> and </span><code>outlets</code><span> member variables in the </span><code>initialize</code><span> method of an object. You can set these to any numbers you want, including zero. (In the current implementation, fractional numbers will be truncated to integers, and negative numbers will be treated as zero. If the variables aren&#39;t set at all, they also default to zero.)</span><h3 id='inlets'><span>Inlets</span></h3><span>Let&#39;s have a look at the inlets first. Pd-Lua supports a number of different forms of inlet methods which enable us to process any kind of Pd message. In the following list, &quot;1&quot; stands for any literal inlet number (counting the inlets from left to right, starting at 1), and &quot;sym&quot; for any symbol denoting either one of the predefined Pd message types (bang, float, symbol, pointer, and list), or any other (selector) symbol at the beginning of a Pd meta message. Note that, as usual, in your code these methods are always prefixed with the class name, using Lua colon syntax.</span><ul><li><code>in_1_sym(...)</code><span> matches the given type or selector symbol on the given inlet; the method receives zero or one arguments (denoted </span><code>...</code><span> here), depending on the selector symbol </span><code>sym</code><span>, see below</span></li><li><code>in_n_sym(n, ...)</code><span> (with a verbatim &quot;n&quot; replacing the inlet number) matches the given type or selector symbol on </span><em><span>any</span></em><span> inlet; the actual inlet number is passed as the first argument (denoted </span><code>n</code><span> here), along with the zero or one extra arguments </span><code>...</code><span> which, like above, depend on the selector symbol </span><code>sym</code></li><li><code>in_1(sel, atoms)</code><span> matches </span><em><span>any</span></em><span> type or selector symbol on the given inlet; the type or selector symbol is passed as a string </span><code>sel</code><span>, and the remaining arguments of the message are passed as a Lua table </span><code>atoms</code><span> containing number and string values</span></li><li><code>in_n(n, sel, atoms)</code><span> matches </span><em><span>any</span></em><span> type or selector symbol on </span><em><span>any</span></em><span> inlet; the method is invoked with the inlet number </span><code>n</code><span> along with type/selector symbol </span><code>sel</code><span> and the remaining message arguments in the Lua table </span><code>atoms</code></li></ul><span>These alternatives are tried in the indicated order, i.e., from most specific to most general. In addition, Pd-Lua understands the following specific </span><code>sym</code><span> type selectors and adjusts the number and type of the extra </span><code>...</code><span> arguments accordingly:</span><ul><li><code>bang</code><span> denotes a bang message and passes no arguments</span></li><li><code>float</code><span> denotes a Pd float value, which is passed as a number argument</span></li><li><code>symbol</code><span> denotes a Pd symbol, which is passed as a string argument</span></li><li><code>pointer</code><span> denotes a Pd pointer, which is passed as a Lua userdata argument</span></li><li><code>list</code><span> denotes a Pd list, which is passed as a Lua table argument containing all the list elements</span></li><li><span>any other </span><code>sym</code><span> value is taken as a literal Pd symbol to be matched against the selector symbol of the incoming message; the remaining arguments of the message are passed as a Lua table argument</span></li></ul><span>Note that there can only be zero or one additional arguments in this case (besides the inlet number for </span><code>in_n_sym</code><span>). In contrast, the two most generic kinds of methods, </span><code>in_1</code><span> and </span><code>in_n</code><span>, always have the type/selector symbol </span><code>sel</code><span> (a string) and the remaining message arguments </span><code>atoms</code><span> (a Lua table) as arguments.</span><span>Among these, the methods for </span><code>bang</code><span>, </span><code>float</code><span>, and </span><code>list</code><span> are probably the most frequently used, along with </span><code>in_1</code><span> or </span><code>in_n</code><span> as a catch-all method for processing any other kind of input message. We&#39;ve already employed the </span><code>in_1_bang</code><span> method in our basic example above. Here are some (rather contrived) examples for the other methods; we&#39;ll see some real examples of some of these later on.</span><pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="lua" style="break-inside: unset;"><div class="CodeMirror cm-s-inner cm-s-null-scroll CodeMirror-wrap" lang="lua"><div style="overflow: hidden; position: relative; width: 3px; height: 0px; top: 9.52344px; left: 8px;"><textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea></div><div class="CodeMirror-scrollbar-filler" cm-not-content="true"></div><div class="CodeMirror-gutter-filler" cm-not-content="true"></div><div class="CodeMirror-scroll" tabindex="-1"><div class="CodeMirror-sizer" style="margin-left: 0px; margin-bottom: 0px; border-right-width: 0px; padding-right: 0px; padding-bottom: 0px;"><div style="position: relative; top: 0px;"><div class="CodeMirror-lines" role="presentation"><div role="presentation" style="position: relative; outline: none;"><div class="CodeMirror-measure"><pre><span>xxxxxxxxxx</span></pre></div><div class="CodeMirror-measure"></div><div style="position: relative; z-index: 1;"></div><div class="CodeMirror-code" role="presentation" style=""><div class="CodeMirror-activeline" style="position: relative;"><div class="CodeMirror-activeline-background CodeMirror-linebackground"></div><div class="CodeMirror-gutter-background CodeMirror-activeline-gutter" style="left: 0px; width: 0px;"></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">function</span> <span class="cm-variable">foo</span>:<span class="cm-variable">in_1_float</span>(<span class="cm-variable">x</span>)</span></pre></div><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"> &nbsp; <span class="cm-variable">pd.post</span>(<span class="cm-builtin">string.format</span>(<span class="cm-string">"foo: got float %g"</span>, <span class="cm-variable">x</span>))</span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span class="cm-keyword">end</span></span></pre><pre class=" CodeMirror-line " role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span cm-text="" cm-zwsp="">
License: UNKNOWN
 FIXME

