*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.4で「使えるか否か」が大きな基準となる。
|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|返り値が全く変わったので、返り値を見て処理する場合、変更や工夫が必要|
|環境系|環境系は取扱い方や関数が変化している。それなりの書き直しが必要|
~

-Lua Compat 52-
[[lua-compat-52>https://github.com/keplerproject/lua-compat-5.2]]
によって、このあたりを吸収する方法を得ることができます。

-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の互換が取りにくい所です。|

トップ   差分 履歴 リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS