Comments (4)
I found a better way without attaching Option<String>
to a WrapperError
and seems it works better
fe39ae0
from mlua.
Thanks for the bug report!
I'm working to fix, and will release 0.6.0-beta.2 soon (sorry, I probably will not backport to 0.5, but hope it's ok).
In 0.6 all functions that can trigger longjmp are moved to the C shim and it's safe to call luaL_traceback
(from the C side, checking available stack first for Lua <= 5.3, in 5.4 it's implemented using buffers).
I also like the idea to create a custom (and stack independent) implementation of luaL_traceback.
from mlua.
@khvzak Hey, thanks for your reply. I experimented somewhat in #45. This seems to work fine in my use case, but Iām just coming back to Rust after a ... seven year break (time flies!).
I suspect your implementation will be more sound, Iād still appreciate a review if you like.
from mlua.
I'm preparing v0.6.0-beta.2 release and pushed a commit that should improve stacktrace reporting in the module mode.
I have not yet published it. Could you please check from the master branch does it looks as you expected?
Thanks.
It will report callback error + stacktrace for a most top callback that failed and the main cause, skipping intermediate calls.
--
I don't much like the current approach, but seems not many options available. Ideally tracebacks should be attached to Error
s but it would be super breaking change (like wrapping error to Error+Traceback or adding field to each Enum variants).
from mlua.
Related Issues (20)
- Can module mode works with async? HOT 2
- Difficulty creating a wrapper type HOT 1
- Support Audio manipulation HOT 2
- Support UI HOT 2
- Error compiling module to wasm32-unknown-emscripten
- Terra integration?
- Lifetime Issues with Scope HOT 3
- In a module best way to deal with async HOT 4
- Serialization: Recursive table detection yields false positives HOT 1
- Allow setting luau compiler options when loading with `require` HOT 2
- Builds fail with useless errors if user's global Cargo target-dir is changed HOT 3
- Send feature flag HOT 2
- bug: `c_void` not a Sync HOT 3
- Limiting script execution time (a question and a bug report) HOT 2
- Deserialize from a table with function HOT 2
- Async functions from different modules treated as normal coroutines HOT 4
- How to convert json to `mlua::Value` like `c-json.decode` HOT 4
- how to method UserData method self.vars? HOT 2
- table.concat expect got "hello" HOT 2
- Get `registry_id` from `RegistryKey` HOT 3
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 mlua.