fperrad / LuaJIT

my tiny LuaJIT 2.1 fork

Home Page:http://luajit.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

my tiny LuaJIT 2.1 fork

Overview

I've worked in order to fill the compatibility gap between LuaJIT 2.1 and Lua 5.2/5.3/5.4.

Some of my Pull Requests were merged upstream by Mike Pall.

My unmerged work is available in the branch tiny_fork on https://github.com/fperrad/LuaJIT. It contains:

  • PR#269 : backport string.*pack* from 5.3
  • PR#327 : backport lua_rawlen, lua_len & luaL_len from 5.2
  • PR#364 : patterns better compatibility with 5.2 ('\0' in pattern)
  • optional utf8 modules (5.3 & 5.4 variants) (rework of PR#270)
  • an optional math integer module (rework of PR#313)

Pull Requests

  • PR#265 : backport package.searchers from 5.2

    status : Merged in v2.1.0-beta3

  • PR#266 : io:read compat with 5.3

    status : Merged in v2.1.0-beta3

  • PR#267 : backport table.move from 5.3

    status : Merged in v2.1.0-beta3 (fully reworked by Mike Pall)

  • PR#268 : backport coroutine.isyieldable from 5.3

    status : Merged in v2.1.0-beta3

  • PR#269 : backport string.*pack* from 5.3

    status : Rejected / Included in my fork

  • PR#270 : backport utf8 library from 5.3

    status : Rejected / Reworked in my fork as optional Lua modules (5.3 & 5.4 variants)

  • PR#273 : refactor table.maxn with LJLIB_LUA

    status : Rejected

  • PR#302 : remove compatibility with Lua 5.0

    status : Merged in v2.1.0-beta3

  • PR#307 : remove old compatibility macros

    status : Merged in v2.1.0-beta3

  • PR#309 : package/module better compatibility with Lua 5.2

    status : Merged in v2.1.0-beta3

  • PR#312 : backport operators from 5.3

    status : Pending (huge change, break bytecode compatibility, waiting for v2.2)

  • PR#313 : backport math.type and math.tointeger from 5.3

    status : Rejected (incompatible numeric model) / Reworked in my fork as an optional Lua module

  • PR#314 : backport some C/API from 5.2/5.3

    status : Merged in v2.1.0-beta3

  • PR#315 : extract lib_coro from lib_base

    status : Rejected (break binary compatibility)

  • PR#317 : add 5.3 operators as syntax sugar

    status : Bugged / needs some rework

  • PR#327 : backport lua_rawlen, lua_len & luaL_len from 5.2

    status : Pending / Included in my fork

  • PR#364 : patterns better compatibility with 5.2 ('\0' in pattern)

    status : Pending / Included in my fork

  • PR#404 : add luaJIT_compat52 symbol

    status : Pending (no feedback)

  • PR#423 : allow assert to take a table object as error

    status : Merged in v2.1.0-??? (fully reworked by Mike Pall)

  • PR#525 : backport more C/API from 5.2/5.4

    status : Pending (no feedback)

  • PR#590 : backport warning system from 5.4

    status : Rejected

  • PR#591 : backport 31bits utf8 from lexico 5.4

    status : Rejected

Build / Install Instructions

From source, like with LuaJIT, see http://luajit.org/install.html.

Note: hererocks could be used like this :

$ hererocks somewhere --luajit https://github.com/fperrad/LuaJIT.git@tiny_fork --compat 5.2

Usage and Limitations

The optional utf8 module must be explicitly loaded by:

utf8 = require'compat53.utf8'

or

utf8 = require'compat54.utf8'

After require'compat53.math', the following functions and numbers are added in the math module:

  • math.maxinteger
  • math.mininteger
  • math.tointeger (n)
  • math.type (n)
  • math.ult (m, n)

LuaJIT uses the same numeric type model as Lua 5.1 which is incompatible with Lua 5.3. As a result, these functions work only in the range [-2^53, 2^53]. math.maxinteger and math.mininteger thus give the limits of this range.

TODO

  • Fix PR#317 : add 5.3 operators as syntax sugar

About

my tiny LuaJIT 2.1 fork

http://luajit.org

License:Other


Languages

Language:C 82.0%Language:Lua 16.1%Language:Makefile 1.0%Language:Batchfile 0.9%Language:Roff 0.1%Language:C++ 0.0%