Code Monkey home page Code Monkey logo

Comments (6)

q66 avatar q66 commented on August 29, 2024 1

landed the big memory management rework, so i will close this

from cffi-lua.

q66 avatar q66 commented on August 29, 2024

i'm not sure how you got it to work to that point, as broken handling of variable-length structs (c9fa529) would prevent it from even allocating properly (it would initialize read_idx to 16 and leave the buffer empty, leading to assertion errors)

that said, after that fix, i was able to reproduce your condition and pushed some fixes, can you test that on your side?

from cffi-lua.

lePereT avatar lePereT commented on August 29, 2024

Could it be the Arm64 architecture that I'm using? Will test asap :)

from cffi-lua.

q66 avatar q66 commented on August 29, 2024

there is also an issue i just discovered; cdata on most platforms must be 16-aligned, but lua_newuserdata returns pointers that are 8-aligned; in practice this will usually not manifest (hence no failing tests in CI even on platforms with strict alignment requirements) but UBsan (rightly) complains about that (so i need to figure out some way to fix it, and probably add UBsan to CI)

the obvious way is to overallocate by 16 bytes and then align the pointer (while making sure to adjust any potential calls to userdata rawlen, because that needs the original pointer and may return wrong size), but that's both a waste and bug-prone, so i'll need to think about this

from cffi-lua.

q66 avatar q66 commented on August 29, 2024

and no, i don't think so

from cffi-lua.

lePereT avatar lePereT commented on August 29, 2024

from cffi-lua.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.