Add a basic implementation of load
for text chunks
#91
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements
load
(and_G
for tests).load
is added as a separate module in the stdlib, withLua::load_load
mirroringLua::load_io
;Lua::core
doesn't includeload
, butLua::full
does.It matches PRLua's implementation, likely closer than we actually want, since PRLua's load has some quirks:
load
can take a function that returns segments of the text; this must be a function, and cannot be a table with a__call
metamethodload
catches errors thrown by the inner iterator function and returns them as parse errorsThis implementation currently matches PRLua in all of those semantics. I should probably change this to use
table.concat
internally for consistency, though it isn't trivial -- the iterator function can return either nil or an empty string to stop iteration, which makes the semantics not map perfectly to a metatable-generic concat system.