| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
* new lanes.h header and API call luaopen_lanes_embedded() for embedders
* "lanes.core" is an acceptable library in the generator libs argument
* library "*" wildcard also opens lanes.core
* tweaked code for Xbox 360 build
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* new: API lanes.require(), use it instead of regular require() for modules that export C functions you need to send over.
* new: lanes no longer require 'lanes.core' by default in every created state. Use {required={"lanes.core"}} if you need to transfer lanes functions.
* internal: because of the above, reworked the timer implementation to remove upvalue-dependency on lanes.core
* new: API lanes.timer_lane, to be able to operate on timer lane if need be
* improved: if a module is a full userdata, scan its metatable for function database population
* improved: on_state_create can be a Lua function
* changed: on_state_create is called after the base libraries are loaded
* package[loaders|searchers] is no longer transfered as function naming depends on slot order
* internal: changed separator from '.' to '/' in lookup databases to be able to distinguish search levels and dot coming from module names
* added some mode debug spew
* updated tests to reflect the above changes
|
|
|
|
| |
* A bit of code cosmetics
|
|
|
|
|
|
|
|
| |
* bugfix: take into account the fact that "coroutine" is no longer part of base library in Lua 5.2
* bugfix: if "bit32" was listed in the libraries, it wouldn't open (library list parsing failing on digits)
* bugfix: Use luaL_requiref() to open standard libraries in Lua 5.2 as we should
* bugfix: any Lua state created by Lanes reuses the allocator function of the originating state
* bugfix: don't call on_state_create() while GC is suspended during lua state initialization
|
|
|
|
|
|
|
|
|
|
|
| |
* raise an error if lane generator libs specification contains a lib more than once
* bit32 is a valid lib name in the libs specification (silently ignored by the Lua 5.1 build)
* improved lanes.nameof to search inside table- and userdata- metatables for an object's name
* fixed an unwarranted error when trying to discover a function name upon a failed transfer
* contents of package.[path,cpath,preload,loaders|searchers] are pulled *only once* inside keeper states at initialisation
* Lua function upvalues equal to the global environment aren't copied by value, but bound to the destination's global environment
especially useful for Lua 5.2 _ENV
* fixed loading of base libraries that didn't create the global tables when built for Lua 5.2
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
| |
Removed a limitation preventing Lua functions with indirect recursive upvalue references from being transferable.
|
|
|
| |
Fixes an error when requiring lanes with active timers after having required "luarocks.loader" (issue #42).
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
| |
linda:send() and linda:receive() no longer trigger string->number autocoercion when checking for the optional timeout argument: a string is always a linda slot, even if coercible.
|
| |
|
| |
|
| |
|
| |
|
|
|
| |
linda:set() no longer clears the storage limit.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Lua 5.2 introduced a hash randomizer seed which causes table iteration to yield a different key order
on different VMs even when the tables are populated the exact same way.
When Lua is built with compatibility options (such as LUA_COMPAT_ALL),
this causes several base libraries to register functions under multiple names.
This, with the randomizer, can cause the first name of a function to be different on different VMs,
which breaks function transfer.
This means that Lua 5.2 must be built with compatibility off to be able to use Lanes.
Even under Lua 5.1, this may cause trouble (even if this would be much less frequent)
Unfortunately, this fails with string.gfind/string.gmatch when Lua 5.1 is built with LUA_COMPAT_GFIND (which is the case of LuaBinaries),
so for the time being, fail only for Lua 5.2 as the randomizer is the real show breaker here.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|