infatuated/documentation.php

2017 lines
50 KiB
PHP

<!DOCTYPE html>
<html>
<head>
<title>Infatuated compatibility chart</title>
<meta charset="UTF-8">
<link rel="stylesheet" href="/~entoreor/style.css">
<link rel="stylesheet" href="documentation.css">
<script src="documentation.js" defer></script>
</head>
<body>
<h1>Infatuated</h1>
<h2>Game compatibility</h2>
<p>Currently, Infatuated can't really run <em>anything</em> and is just a proof-of-concept.</p>
<table>
<thead>
<tr>
<td>Name</td>
<td>Developer</td>
<td>Type</td>
<td>Challenge</td>
<td>Compatibility</td>
<td>Baseline 11.3</td>
<td>Baseline 0.9.2</td>
<td>Baseline 0.8.0</td>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://tildegit.org/entoreor/infatuated/src/branch/master/game">Infatuated <i>test</i></a></td>
<td><a href="/~entoreor/">entoreor</a></td>
<td>FOSS</td>
<td></td>
<td><span class="goodish">Working</span></td>
<td><span class="good">Perfect</span></td>
<td><span class="medium">Running</span></td>
<td><span class="medium">Running</span></td>
</tr>
<tr>
<td><a href="https://github.com/love2d/love/blob/master/src/scripts/nogame.lua">LÖVE 11.3 <i>nogame.lua</i></a></td>
<td rowspan="2"></td>
<td rowspan="3">FOSS</td>
<td>love.physics</td>
<td><span class="bad">Broken</span></td>
<td><span class="good">Perfect</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
</tr>
<tr>
<td><a href="https://bitbucket.org/rude/love/src/63ed6cbfb2853009bb49572d975569d43cba2705/src/scripts/boot.lua">LÖVE 0.9.0 <i>nogame.lua</i></a></td>
<td>SpriteBatch</td>
<td><span class="medium">Running</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="good">Perfect</span></td>
<td><span class="good">Perfect</span></td>
</tr>
<tr>
<td><a href="https://bitbucket.org/rude/love/downloads/love-demos-0.8.0.zip">Passing Clouds</a></td>
<td></td>
<td>love.audio</td>
<td><span class="goodish">Near perfect</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="good">Perfect</span></td>
<td><span class="good">Perfect</span></td>
</tr>
<tr>
<td><a href="https://stabyourself.net/mari0/">Mari0</a></td>
<td rowspan="6"><a href="https://stabyourself.net/about/">Stabyourself.net</a></td>
<td rowspan="6">Shareware</td>
<td></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="good">Perfect</span></td>
</tr>
<tr>
<td><a href="https://stabyourself.net/orthorobot/">Ortho Robot</a></td>
<td></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="goodish">Working</span></td>
</tr>
<tr>
<td><a href="https://stabyourself.net/nottetris2/">Not Tetris 2</a></td>
<td></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
</tr>
<tr>
<td><a href="https://stabyourself.net/notpacman/">Not Pacman</a></td>
<td></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="badish">Menu</span></td>
</tr>
<tr>
<td><a href="https://stabyourself.net/trosh/">Trosh</a></td>
<td></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="good">Perfect</span></td>
</tr>
<tr>
<td><a href="https://stabyourself.net/orderoftwilight/">Order of Twilight</a></td>
<td></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="good">Perfect</span></td>
</tr>
<tr>
<td><a href="https://www.aeonofsands.com/">Aeon of Sands - The Trial</a></td>
<td>Two Bits Kid</td>
<td>Commercial</td>
<td>precompiled code</td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
</tr>
<tr>
<td><a href="https://woofycakes.itch.io/blue-revolver-v05">BLUE REVOLVER (v0.51 demo)</a></td>
<td>Stellar Circle</td>
<td>Commercial</td>
<td></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="good">Perfect</span></td>
<td><span class="bad">Broken</span></td>
</tr>
<tr>
<td><a href="https://www.ohmygiraffe.com/">oh my giraffe</a></td>
<td><a href="https://twitter.com/kneeko">Nico Prins</a></td>
<td>Freeware</td>
<td></td>
<td><span class="bad">Broken</span></td>
<td><span class="bad">Broken</span></td>
<td><span class="good">Perfect</span></td>
<td><span class="bad">Broken</span></td>
</tr>
</tbody>
</table>
<h2>API completeness</h2>
<table id="apidoc">
<thead>
<tr>
<td>Name</td>
<td>Description</td>
<td>Implementation</td>
</tr>
</thead>
<tbody>
<tr>
<td>love.conf</td>
<td>None of the settings are honoured.</td>
<td><span class="bad">Stub</span></td>
</tr>
<tr>
<td>love.errhand</td>
<td>Aliases are not yet honoured.</td>
<td><span class="bad">Broken</span></td>
</tr>
<tr>
<td>love.errorhandler</td>
<td>Default is not quite complete but functional.</td>
<td><span class="medium">Incomplete</span></td>
</tr>
<tr>
<td>love.run</td>
<td>Essential code needs to be moved out of love.run.</td>
<td><span class="medium">Incomplete</span></td>
</tr>
<!---->
<tr>
<th>love.handlers</th>
<th><strong>All of the shorthand aliases are broken!</strong></th>
<th><span class="badish">Very incomplete</span></th>
</tr>
<tr>
<td>love.handlers.displayrotated</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.lowmemory</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.quit</td>
<td>Uses love.quit, not love.handlers.quit</td>
<td><span class="neutral">Untested</span></td>
</tr>
<tr>
<td>love.handlers.threaderror</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.directorydropped</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.filedropped</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.mousefocus</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.resize</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.visible</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.keypressed</td>
<td rowspan="2">Scancodes not implemented.</td>
<td><span class="medium">Incomplete</span></td>
</tr>
<tr>
<td>love.handlers.keyreleased</td>
<td><span class="medium">Incomplete</span></td>
</tr>
<tr>
<td>love.handlers.textedited</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.textinput</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.mousemoved</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.mousepressed</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.mousereleased</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.wheelmoved</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.gamepadaxis</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.gamepadpressed</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.gamepadreleased</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.joystickadded</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.joystickaxis</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.joystickhat</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.joystickpressed</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.joystickreleased</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.joystickremoved</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.touchmoved</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.touchpressed</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.handlers.touchreleased</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<!---->
<tr>
<th>love.audio</th>
<th>I don't feel like implementing every tracker format ever</th>
<th><span class="badish">Very incomplete</span></th>
</tr>
<tr>
<td>love.audio.getActiveEffects</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.getActiveSourceCount</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.getDistanceModel</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.getDopplerScale</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.getEffect</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.getMaxSceneEffects</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.getMaxSourceEffects</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.getNumSources</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.getOrientation</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.getPosition</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.getRecordingDevices</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.getSourceCount</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.getVelocity</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.getVolume</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.isEffectsSupported</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.newQueueableSource</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.newSource</td>
<td></td>
<td><span class="medium">Incomplete</span></td>
</tr>
<tr>
<td>love.audio.pause</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.play</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.audio.resume</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.rewind</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.setDistanceModel</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.setDopplerScale</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.setEffect</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.setMixWithSystem</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.setOrientation</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.setPosition</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.setVelocity</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.setVolume</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.audio.stop</td>
<td></td>
<td><span class="bad">Stub</span></td>
</tr>
<!---->
<tr>
<th>love.data</th>
<th></td>
<th><span class="badish">Very incomplete</span></th>
</tr>
<tr>
<td>love.data.compress</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.data.decode</td>
<td>Only supports base64</td>
<td><span class="badish">Very incomplete</span></td>
</tr>
<tr>
<td>love.data.decompress</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.data.encode</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.data.getPackedSize</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.data.hash</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.data.newByteData</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.data.newDataView</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.data.pack</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.data.unpack</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<!---->
<tr>
<th>love.filesystem</th>
<th></td>
<th><span class="badish">Very incomplete</span></th>
</tr>
<tr>
<td>love.filesystem.unmount</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.write</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.setIdentity</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.setCRequirePath</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem._setAndroidSaveExternal</td>
<td>Undocumented</td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.getExecutablePath</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.getCRequirePath</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.init</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.newFileData</td>
<td>Only supports virtual files</td>
<td><span class="medium">Incomplete</span></td>
</tr>
<tr>
<td>love.filesystem.isSymlink</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.append</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.getUserDirectory</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.createDirectory</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.getInfo</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.areSymlinksEnabled</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.exists</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.newFile</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.getSaveDirectory</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.mount</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.getRequirePath</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.getWorkingDirectory</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.getSize</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.setRequirePath</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.isFused</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.getDirectoryItems</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.setSource</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.getLastModified</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.isFile</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.isDirectory</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.getIdentity</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.setFused</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.getAppdataDirectory</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.lines</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.load</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.remove</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.getSource</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.getRealDirectory</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.read</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.setSymlinksEnabled</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.filesystem.getSourceBaseDirectory</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<!---->
<tr>
<th>love.graphics</th>
<th></td>
<th><span class="badish">Very incomplete</span></th>
</tr>
<tr>
<td>love.graphics.arc</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.circle</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.clear</td>
<td></td>
<td><span class="goodish">Inaccurate</span></td>
</tr>
<tr>
<td>love.graphics.discard</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.draw</td>
<td></td>
<td><span class="badish">Very incomplete</span></td>
</tr>
<tr>
<td>love.graphics.drawInstanced</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.drawLayer</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.drawq</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.ellipse</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.flushBatch</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.line</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.point</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.points</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.polygon</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.present</td>
<td>Probably inherently incompatible with Infatuated's design.</td>
<td><span class="bad">Stub</span></td>
</tr>
<tr>
<td>love.graphics.print</td>
<td>r, sx, sy, ox, oy, kx, ky not implemented</td>
<td><span class="badish">Very incomplete</span></td>
</tr>
<tr>
<td>love.graphics.printf</td>
<td>Ditto, and "justify" alignment not supported</td>
<td><span class="badish">Very incomplete</span></td>
</tr>
<tr>
<td>love.graphics.quad</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.rectangle</td>
<td></td>
<td><span class="badish">Very incomplete</span></td>
</tr>
<tr>
<td>love.graphics.stencil</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.triangle</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.captureScreenshot</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.newArrayImage</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.newCanvas</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.newCubeImage</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.newFont</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.newFramebuffer</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.newImage</td>
<td></td>
<td><span class="medium">Incomplete</span></td>
</tr>
<tr>
<td>love.graphics.newImageFont</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.newMesh</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.newMesh</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.newParticleSystem</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.newPixelEffect</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.newQuad</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.newScreenshot</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.newShader</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.newSpriteBatch</td>
<td>Resulting SpriteBatch object is full of stubs.</td>
<td><span class="badish">Very incomplete</span></td>
</tr>
<tr>
<td>love.graphics.newStencil</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.newText</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.newVideo</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.newVolumeImage</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setNewFont</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.validateShader</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getBackgroundColor</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.graphics.getBlendMode</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getCanvas</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getColor</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.graphics.getColorMask</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getColorMode</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getDefaultFilter</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getDefaultImageFilter</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getDepthMode</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getFont</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getFrontFaceWinding</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getLineJoin</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getLineStyle</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getLineWidth</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.graphics.getMeshCullMode</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getPixelEffect</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getPointSize</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getPointStyle</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getScissor</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getShader</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getStackDepth</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getStencilTest</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.intersectScissor</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.isActive</td>
<td>Always returns true.</td>
<td><span class="bad">Stub</span></td>
</tr>
<tr>
<td>love.graphics.isGammaCorrect</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.isSupported</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.isWireframe</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.reset</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.graphics.setBackgroundColor</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.graphics.setBlendMode</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setCanvas</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setColor</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.graphics.setColorMask</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setColorMode</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setDefaultFilter</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setDefaultImageFilter</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setDepthMode</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setFont</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setFrontFaceWinding</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setLineJoin</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setLineStyle</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setLineWidth</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.graphics.setMeshCullMode</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setPixelEffect</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setPointSize</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setPointStyle</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setScissor</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setShader</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setStackDepth</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setStencil</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setStencilTest</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setWireframe</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.applyTransform</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.inverseTransformPoint</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.origin</td>
<td></td>
<td><span class="neutral">Untested</span></td>
</tr>
<tr>
<td>love.graphics.pop</td>
<td></td>
<td><span class="bad">Stub</span></td>
</tr>
<tr>
<td>love.graphics.push</td>
<td></td>
<td><span class="bad">Stub</span></td>
</tr>
<tr>
<td>love.graphics.replaceTransform</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.rotate</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.scale</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.shear</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.transformPoint</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.translate</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.checkMode</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getCaption</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getDPIScale</td>
<td>Always returns 1</td>
<td><span class="bad">Stub</span></td>
</tr>
<tr>
<td>love.graphics.getDimensions</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.graphics.getHeight</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.graphics.getMode</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getModes</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getPixelDimensions</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getPixelHeight</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getPixelWidth</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getWidth</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.graphics.hasFocus</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.isCreated</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setCaption</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setIcon</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.setMode</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.toggleFullscreen</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getCanvasFormats</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getCompressedImageFormats</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getImageFormats</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getMaxImageSize</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getMaxPointSize</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getRenderInfo</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getStats</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getSupported</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getSystemLimit</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getSystemLimits</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.graphics.getTextureTypes</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<!---->
<tr>
<th>love.math</th>
<th></th>
<th><span class="badish">Very incomplete</span></th>
</tr>
<tr>
<td>love.math.colorFromBytes</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.math.colorToBytes</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.math.compress</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.math.decompress</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.math.gammaToLinear</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.math.getRandomSeed</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.math.getRandomState</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.math.isConvex</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.math.linearToGamma</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.math.newBezierCurve</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.math.newRandomGenerator</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.math.newTransform</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.math.noise</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.math.random</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.math.randomNormal</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.math.setRandomSeed</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.math.setRandomState</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.math.triangulate</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<!---->
<tr>
<th>love.mouse</th>
<th></th>
<th><span class="badish">Very incomplete</span></th>
</tr>
<tr>
<td>love.mouse.getCursor</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.mouse.getPosition</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.mouse.getRelativeMode</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.mouse.getSystemCursor</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.mouse.getX</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.mouse.getY</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.mouse.hasCursor</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.mouse.isCursorSupported</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.mouse.isDown</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.mouse.isGrabbed</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.mouse.isVisible</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.mouse.newCursor</td>
<td></td>
<td><span class="medium">Incomplete</span></td>
</tr>
<tr>
<td>love.mouse.setCursor</td>
<td></td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.mouse.setGrab</td>
<td>Now love.mouse.setGrabbed; removed in 0.9.0</td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.mouse.setGrabbed</td>
<td>Mouse position not detected when grabbed</td>
<td><span class="medium">Incomplete</span></td>
</tr>
<tr>
<td>love.mouse.setPosition</td>
<td>No API to do this</td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.mouse.setRelativeMode</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.mouse.setVisible</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.mouse.setX</td>
<td>No API to do this</td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.mouse.setY</td>
<td>No API to do this</td>
<td><span class="bad">Missing</span></td>
</tr>
<!---->
<tr>
<th>love.timer</th>
<th></th>
<th><span class="badish">Very incomplete</span></th>
</tr>
<tr>
<td>love.timer.getAverageDelta</td>
<td></td>
<td><span class="bad">Missing</span</td>
</tr>
<tr>
<td>love.timer.getDelta</td>
<td></td>
<td><span class="bad">Missing</span</td>
</tr>
<tr>
<td>love.timer.getFPS</td>
<td></td>
<td><span class="bad">Missing</span</td>
</tr>
<tr>
<td>love.timer.getMicroTime</td>
<td>Alias of love.timer.getTime</td>
<td><span class="neutral">Alias</span</td>
</tr>
<tr>
<td>love.timer.getTime</td>
<td></td>
<td><span class="good">Complete</span</td>
</tr>
<tr>
<td>love.timer.sleep</td>
<td></td>
<td><span class="bad">Missing</span</td>
</tr>
<tr>
<td>love.timer.step</td>
<td></td>
<td><span class="bad">Missing</span</td>
</tr>
<!---->
<tr>
<th>love.window</th>
<th></th>
<th><span class="badish">Very incomplete</span></th>
</tr>
<tr>
<td>love.window.close</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.fromPixels</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.getDPIScale</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.getDesktopDimensions</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.getDimensions</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.getDisplayCount</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.getDisplayName</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.getDisplayOrientation</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.getFullscreen</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.getFullscreenModes</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.getHeight</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.getIcon</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.getMode</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.getPixelScale</td>
<td>Alias of love.window.getDPIScale</td>
<td><span class="neutral">Alias</span></td>
</tr>
<tr>
<td>love.window.getPosition</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.getSafeArea</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.getTitle</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.getVSync</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.getWidth</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.hasFocus</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.hasMouseFocus</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.isCreated</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.isDisplaySleepEnabled</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.isMaximized</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.isMinimized</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.isOpen</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.isVisible</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.maximize</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.minimize</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.requestAttention</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.restore</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.setDisplaySleepEnabled</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.setFullscreen</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.setIcon</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.setMode</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.setPosition</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.setTitle</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.setVSync</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.showMessageBox</td>
<td>type and attachtowindow not implemented, but those are ignored on Linux anyway</td>
<td><span class="good">Complete</span></td>
</tr>
<tr>
<td>love.window.toPixels</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>love.window.updateMode</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<!---->
<tr>
<th>io</th>
<th></th>
<th><span class="bad">Missing</span></th>
</tr>
<tr>
<td>io.input</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>io.stdin</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>io.tmpfile</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>io.read</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>io.output</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>io.open</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>io.close</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>io.write</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>io.popen</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>io.flush</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>io.type</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>io.lines</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>io.stdout</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>io.stderr</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<!---->
<tr>
<th>os</th>
<th></th>
<th><span class="badish">Very incomplete</span></td>
</tr>
<tr>
<td>os.execute</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>os.rename</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>os.setlocale</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>os.getenv</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>os.difftime</td>
<td>Provided by Fengari</td>
<td><span class="neutral">Untested</span></td>
</tr>
<tr>
<td>os.remove</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>os.date</td>
<td>Provided by Fengari</td>
<td><span class="neutral">Untested</span></td>
</tr>
<tr>
<td>os.exit</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
<tr>
<td>os.time</td>
<td>Provided by Fengari</td>
<td><span class="neutral">Untested</span></td>
</tr>
<tr>
<td>os.clock</td>
<td>Provided by Fengari</td>
<td><span class="neutral">Untested</span></td>
</tr>
<tr>
<td>os.tmpname</td>
<td></td>
<td><span class="bad">Missing</span></td>
</tr>
</tbody>
</table>
<?php include "/home/entoreor/public_html/templates/footer.html"; ?>
</body>
</html>