Commit Graph

41 Commits

Author SHA1 Message Date
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