Commit Graph

47 Commits

Author SHA1 Message Date
rxi
13a8edb2e7 Changed lume.split() to mimic python's str.split()
The lume.split() function now mimics python's str.split() function,
though it does not support the third argument (maxsplit)
2014-03-19 12:51:35 +00:00
rxi
a234e36975 Version 1.2.0 2014-03-18 12:12:38 +00:00
rxi
4ba373c2d1 Localised global funcs/variables
Set most of the global funcs / variables which are used to local
variables. This offers better performance in lua 5.1 and 5.2, and seems
to make no difference in luaJIT.
2014-03-18 12:07:53 +00:00
rxi
be40cd6276 Added caching to lume.lambda() 2014-03-15 21:58:26 +00:00
rxi
151b57adc6 Fixed behaviour for negative i argument on lume.slice()
A negative value for the `i` argument of lume.slice() is now handled
properly (used as an index from the end of the string) to mimicing the
behaviour of lua's string.sub()
2014-03-13 21:32:22 +00:00
rxi
cbafc49e8a Added "unsupported type" error to lume.serialize()
The unsupported type error is raised if an unsupported type is
encountered in the table we are trying to serialize.
2014-03-12 21:16:32 +00:00
rxi
2d7fa98155 Added lume.weightedchoice() 2014-03-12 13:12:45 +00:00
rxi
fbb5cbac1a Replaced table concat with str concat in lume.lambda()
This offers an improvement in performance for the function on Lua5.1,
5.2 and JIT 2.0.2
2014-03-08 22:19:55 +00:00
rxi
cf031025fd Added lume.lambda() 2014-03-08 21:08:56 +00:00
rxi
a4fe134985 Version 1.1.2 2014-03-08 16:10:16 +00:00
rxi
2f388bc2c7 Moved lume.invert() to be near lume.clone()
This makes the series of python-like functions (map, all, any, reduce,
set, filter) consecutive in the source and readme, which seems like a
more logical order.
2014-03-08 15:23:13 +00:00
rxi
1bbb795a89 Changed lume.set() to make use of lume.invert() 2014-03-08 14:47:27 +00:00
rxi
8a76fd7595 Added lume.invert() 2014-03-08 14:45:08 +00:00
rxi
51189d190d Made first argument in lume.reduce() optional 2014-03-06 19:33:13 +00:00
rxi
e6d47627cd Increased version to 1.1.1 2014-03-05 21:52:28 +00:00
rxi
05828bd840 Fixed module's table not updating in lume.hotswap()
Changed the returned values from pcall() in lume.hotswap() to be handled
correctly -- the second return value being the wrapped-function's first
return value. This bug would effect hotswapped modules which used the
modern approach of returning a table rather than creating globals.
2014-03-05 19:11:14 +00:00
rxi
83a051aadb Improved lume.clamp()'s performance on non-JIT
Removed use of the functions math.max() and math.min() and replaced them
with and/ors:

[5000000 calls, Lua5.2]
old func: 1.37 seconds
new func: 0.53 seconds
2014-03-05 12:44:19 +00:00
rxi
a08436445d Improved lume.distance()'s performance on non-JIT
Replaced use of the exponent operator with multiplications, yielding a
performance increase on non-JIT Lua:

[5000000 calls, Lua 5.1]
old func: 2.03 seconds
new func: 1.17 seconds

[5000000 calls, Lua 5.2]
old func: 1.60 seconds
new func: 0.89 seconds

[2000000000 calls, LuaJIT 2.0.2]
old func: 0.89 seconds
new func: 0.89 seconds
2014-03-05 12:18:49 +00:00
rxi
1cc16ffacd Increased version to 1.1.0 2014-03-04 23:12:50 +00:00
rxi
f144927542 Added optional arg squared to lume.distance() 2014-03-04 22:53:31 +00:00
rxi
dcc08346a2 Fixed lume.hotswap() to handle nonexistent modules properly 2014-03-04 12:35:35 +00:00
rxi
fb64932134 Added support for numerical keys to lume.format() 2014-03-04 12:18:50 +00:00
rxi
bdb2f0003e Made lume.dostring() use load() if no loadstring()
lume.dostring() now checks if the loadstring() function (deprecated in
lua5.2) exists, and uses load() if it does not.
2014-03-03 22:10:58 +00:00
rxi
97907d5d13 Changed lume.format() to abort early if vars is nil 2014-03-03 21:08:19 +00:00
rxi
8283410210 Substituted use of var name "arg" in lume.fn()
The use of a variable called "arg" was causing a bug in lume.fn() for
lua5.1 which creates a table named "arg" when a variable number of
arguments are used. The variable name has been changed to "args" to
avoid the conflict.
2014-03-03 21:01:39 +00:00
rxi
d1e6c0334b Changed 'vars' arg in lume.format() to be optional 2014-03-03 20:37:15 +00:00
rxi
778e7f9800 Fixed lume.format() where missing keys were not ignored 2014-03-03 20:33:39 +00:00
rxi
bebf8d4fca Fixed bug with negative j index in lume.slice()
Fixed a bug where giving lume.slice() a negative j index (or no j index)
would not result in the correct slice -- the behaviour now correctly
matches that of string.sub() when passing a negative j index.
2014-03-03 18:56:12 +00:00
rxi
4bb6f24213 Changed lume.once()'s return fn to handle args 2014-03-03 13:25:53 +00:00
rxi
c407ef9445 Changed lume.fn()'s returned fn to handle args 2014-03-03 13:20:51 +00:00
rxi
1cedfd9464 Added lume.each() function 2014-03-03 12:08:11 +00:00
rxi
bfcc23d285 Increased version to 1.0.9 2014-03-02 21:32:57 +00:00
rxi
f2877dbd6e Added increment rounding to lume.round() 2014-03-02 21:30:15 +00:00
rxi
fbe585fc85 Added lume.trace() function 2014-03-02 20:48:21 +00:00
rxi
3324bb013c Added error handling to lume.hotswap()
Changed lume.hotswap() to return an error and restore the global
environment if an error occurs when requiring the new package
2014-03-02 17:15:39 +00:00
rxi
842e367ccd Changed lume.fn/once's returned func return, v1.0.8
* The functions which lume.fn() and lume.once() return now return their
  inner functions' return value instead of nil
* Moved lume.once() in lume.lua and README.md to be near its similar
  functions -- lume.fn() and lume.time()
2014-03-02 00:33:55 +00:00
rxi
d65556bc83 Fixed formerly broken lume.angle(), version 1.0.7 2014-03-01 20:27:33 +00:00
rxi
547446074f Added lume.hotswap() fn, updated version to 1.0.6 2014-03-01 15:18:40 +00:00
rxi
0d85bd630f Added lume.time(), incremented version revision 2014-02-28 19:40:16 +00:00
rxi
e018498a0d Changed args for lume.any/all(), fixed README.md
* The functions lume.any() and lume.all() now have a default function if
  one is not provided -- their default behaviour with a single argument
  now matches that of Python.
* Updated README.md to reflect changes
* Fixed typo in lume.any()'s example in README.md
* Incremented version revision number
2014-02-28 12:51:50 +00:00
rxi
50eb3d9f52 Changed first arg of lume.reduce to non-optional 2014-02-28 00:30:01 +00:00
rxi
3eec98906b Removed "len" argument from lume.pingpong() 2014-02-27 23:35:07 +00:00
rxi
072e3149c2 Updated version number 2014-02-27 22:55:19 +00:00
rxi
34b2013c71 Changed funcs to treat tables as arrays by default
Changed the lume.set(), lume.merge() and lume.filter() functions to take
the argument `retainkeys` instead of `isarray`, and to treat the table
as an array by default (avoiding sparse arrays) instead of treating the
table as an associative array by default (retaining keys).
2014-02-27 22:42:42 +00:00
rxi
eeadcd307d Added isarray argument to lume.set 2014-02-27 22:17:36 +00:00
rxi
011b26943a Fixed accidental use of global in lume.clone() 2014-02-27 21:31:26 +00:00
rxi
2f51dce71f First commit 2014-02-27 20:19:10 +00:00