Lua5.1からLua5.2への主な変更点

リファレンス

影響の大きい変更点、変更点の実際

  • goto文
    goto foo
    
      --・・・
    
     ::foo::
    

  • 削除の実際
    公式サイトのコンパイル済みの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つを書き分けた記述でも動作することがある程度期待出来る
    unpacktable.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.loaderspackage.searchersに変更とあるが、Lua5.2のLUA_COMPAT_ALLでは従来のpackage.loadersとともに「両方動作する。よって、5.2では両方が動作することがある程度期待出来る

  • 変更の実際
    os.execute返り値が全く変わったので、返り値を見て処理する場合、変更や工夫が必要
    環境系環境系は取扱い方や関数が変化している。それなりの書き直しが必要

  • Lua Compat 52- lua-compat-52 によって、このあたりを吸収する方法を得ることができます。
  • Penlightのpl.compat
    Penlightpl.compatによって、このあたりを吸収する手がかりを得ることができます。
    compat.lua

  • 追加の実際
    bit32ビット演算ライブラリ。Lua5.1で実現したい場合はLuaで良く作る関数 ~bit32編~を参照。
    rawlen__lenメタメソッドの振る舞いが変更されており、同時にrawlenが追加されています。この当たりは5.1と5.2の互換が取りにくい所です。

トップ   差分 履歴 リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-01-23 (土) 00:00:00