*Lua5.1からLua5.2への主な変更点 [#rca579b0] **リファレンス [#x7d25122] -[[前のバージョンと非互換な点>http://milkpot.sakura.ne.jp/lua/lua52_manual_ja.html#8]] **影響の大きい変更点、変更点の実際 [#i9fb83af] -goto文 #sh(lua){{ goto foo --・・・ ::foo:: }} ~ -削除の実際~ [[公式サイト>http://www.lua.org/]]のコンパイル済みのLua 5.2.3で「使えるか否か」が大きな基準となる。 |getfenv|削除| |setfenv|削除| |module|「廃止」とあるが、Lua5.2のLUA_COMPAT_ALLでは動作する。よって5.2ではまだ動作することがある程度期待出来る| |loadstring|「廃止」され「load」に取り込まれたとあるが、Lua5.2のLUA_COMPAT_ALLでは「load」と「loadstring」両方が存在し、同一の挙動。よって5.2ではまだ2つを書き分けた記述でも動作することがある程度期待出来る| |unpack|table.unpackに移動とあるが、Lua5.2のLUA_COMPAT_ALLでは従来のunpackとともに「両方動作する。よって、5.2では両方が動作することがある程度期待出来る| |table.maxn|「廃止」とあるが、Lua5.2のLUA_COMPAT_ALLでは動作する。よって5.2ではまだ動作することがある程度期待出来る| |package.seaall|「廃止」とあるが、Lua5.2のLUA_COMPAT_ALLでは動作する。よって5.2ではまだ動作することがある程度期待出来る| |package.loaders|package.searchersに変更とあるが、Lua5.2のLUA_COMPAT_ALLでは従来のpackage.loadersとともに「両方動作する。よって、5.2では両方が動作することがある程度期待出来る| ~ -変更の実際 |os.execute|返り値が全く変わったので、返り値を見て処理する場合、変更や工夫が必要| |環境系|環境系は取扱い方や関数が変化している。それなりの書き直しが必要| ~ -Penlightのpl.compat~ [[Penlight]]の[[pl.compat>http://stevedonovan.github.io/Penlight/api/modules/pl.compat.html]]によって、このあたりを吸収する手がかりを得ることができます。~ →[[compat.lua>https://github.com/stevedonovan/Penlight/blob/master/lua/pl/compat.lua]]~ ~ -追加の実際 |bit32|ビット演算ライブラリ。Lua5.1で実現したい場合は[[Luaで良く作る関数 ~bit32編~>Lua implements_func_bit32]]を参照。| |rawlen|__lenメタメソッドの振る舞いが変更されており、同時にrawlenが追加されています。この当たりは5.1と5.2の互換が取りにくい所です。|