summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMike Pall <mike>2021-04-25 17:44:03 +0200
committerMike Pall <mike>2021-04-25 17:44:03 +0200
commit431e81cdff9653cd16c6333bb51c314bd051611d (patch)
treebe94adb99dd56149c60848f7dbf75d0403ef510b /doc
parent33e3f4badfde8cd9c202cedd1f4ed9275bc92e7d (diff)
downloadluajit2-431e81cdff9653cd16c6333bb51c314bd051611d.tar.gz
Add FAQ about table iteration order.
Diffstat (limited to 'doc')
-rw-r--r--doc/faq.html13
1 files changed, 13 insertions, 0 deletions
diff --git a/doc/faq.html b/doc/faq.html
index c7e8e979..6b7dc563 100644
--- a/doc/faq.html
+++ b/doc/faq.html
@@ -131,6 +131,19 @@ You have to press Ctrl-C twice to get stop your program. That's similar
to when it's stuck running inside a C function under the Lua interpreter.</dd>
</dl>
+<dl id="order">
+<dt>Q: Table iteration with <tt>pairs()</tt> does not result in the same order?</dt>
+<dd>The order of table iteration is explicitly <b>undefined</b> by
+the Lua language standard.<br>
+Different Lua implementations or versions may use different orders for
+otherwise identical tables. Different ways of constructing a table may
+result in different orders, too.<br>
+Due to improved VM security, LuaJIT 2.1 may even use a different order
+on separate VM invocations or when string keys are newly interned.<br><br>
+If your program relies on a deterministic order, it has a bug. Rewrite it,
+so it doesn't rely on the key order. Or sort the table keys, if you must.
+</dl>
+
<dl id="sandbox">
<dt>Q: Can Lua code be safely sandboxed?</dt>
<dd>