lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Wish the standard Lua distribution contain these new things... I think many of us would appreciate it.


2011.11.02. 16:03:43 dátumon Ing. Jan Supuka SBM <> írta:

In newest LUA 5.2 beta is implemented UNSIGNED INTEGER type and library bit32 for bitwise operations.

But I don't like write
     a = bit32.bor(,2345),,7))
instead of
     a = 5&2345|23&7
that's why I rework source codes ( lua-5.2.0-beta.tar.gz [NEW] 2011-07-08 ) to use "native" operators (based on source code) :
     band &
     bor     |
     bxor    ^^
     lshift <<
     rshift >>
     bnot    ~
and my own logical operators:
     and &&
     or      ||
     not     !

All source code changes are dependent on (luaconfig.h)
#define GCW_BIT
GCW_BIT: Use bit library.
This extends virtual machine with bitwise operations
&,|, ^^, ~, <<, >> and provides corresponding events.
Warning! Makes code non-portable.
Affects c.lvm, c.lcode, c.lopcodes, c.ltm
c.llex, c.lparser, h.lcode, h.lopcodes
h.ltm, h.llex, h.luaconf.

additionally NUM_logical operators ( return numerical (1,0), not boolean values )

IMPORTANT: in standart LUA is not possible use boolean (true,false) in arithmetical operations,
but I need it.
On (lvm.c line:375) is it possible (unremark) allow using booleans only for new operators.
Need tests, if all is correct.

BASIC TEST ... approximately 5x faster native versus bit32.bxxx operators, more readable LUA source