Comments (7)
The trouble is that the value of the of the arguments can be any valid Lua data type. Try:
result, error = pcall(function()
ipairs(dofile)
end)
return result, error
from luerl.
Ah yes, I see, the format throws argument errors when the format param is not compatible.
I think I was expecting an elixir 'inspect' type of formatting there.
So to fix this we would need format_argument
type of functions for every possible argument type that goes into the io_lib:format. These would then format the structure to a string, (maybe with a default implementation using a plain ~w
)
And then use the string format?
So that the format_error would look like this:
format_error({badarg,Where,As}) ->
io_lib:format("badarg in ~s: ~s", [format_where(Where), format_args(As)]);
from luerl.
You have discovered another bug which needs fixing first. 😄 The ipairs
function never checks its argument and always succeeds, it is the function which it returns which checks that its argument is a table.
I will fix that first and then we can get back to the error message from pcall
. I have some ideas about that.
from luerl.
The ipairs
and pairs
handling of arguments has now been fixed.
from luerl.
One thing is that the current get_stacktrace
function is really designed to build a "better" current stack and not really print it out. That could be another function.
from luerl.
The thing is that this formatting happens in the pcall, so these binaries are returned to the lua code. These users may not be familiar to these erlang binary format .
from luerl.
This has now been fixed a commit in the develop branch dd78ff5
from luerl.
Related Issues (20)
- more documentation for Mod:install in load_module
- pcall and division by zero HOT 6
- Executing a Lua function from within Elixir does not return the mutated state HOT 5
- Garbage collector removes environment for functions stored in a table in _G HOT 3
- store/retrieve luerl_state
- string.gmatch HOT 1
- load function regression failure in 1.0 HOT 2
- New vs Old Interface HOT 2
- should luerl_new:load convert error atom to lua_error? HOT 5
- Lua Slack registration system is down HOT 5
- Sandboxing is unclear (specifically referring to the standard library) HOT 1
- get_stacktrace overwrites line number when inside a for loop:
- troubles with call_function HOT 1
- Metatable error HOT 1
- Question: How can I call a lua function with Erlang terms? HOT 2
- Feature Request: Export additional functions from luerl_heap HOT 1
- Clean repository before publishing hex package HOT 6
- Website Offline
- The os.time function generates a current epoch timestamp when given a specific date HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from luerl.