Giter Club home page Giter Club logo

Comments (11)

treeform avatar treeform commented on June 9, 2024

We are aware of this. We are thinking of how to setup the CI to test 32bit.

For us, we are interested in 32bit mainly because of wasm. Maybe 32bit-ness will be part of some wasm related build.

from pixie.

ajusa avatar ajusa commented on June 9, 2024

I've looked into this more, and I think that it also might be an armv6 alignment issue - just putting that out there. Thanks for the update though, tracking this down is pretty tricky since most people don't actually have 32 bit hardware to test on 😄

from pixie.

treeform avatar treeform commented on June 9, 2024

It looks like I can make a github action to run it on armv7 which is a 32 bit arm used in Raspberry Pi 2.

https://github.com/treeform/pixie/runs/2647606163

Not sure if I got it right though...

Does not look like it suffers from the alignment issues that armv6 does?

from pixie.

ajusa avatar ajusa commented on June 9, 2024

Interesting, so all of your tests pass. The Raspberry Pi 1 has armv6, not sure if Github actions has that though. Apparently armv6 could toggle whether or not to have alignment issues by setting the value of a register, or by using this gcc flag:

-munaligned-access
-mno-unaligned-access
Enables (or disables) reading and writing of 16- and 32- bit values from addresses that are not 16- or 32- bit aligned. By default unaligned access is disabled for all pre-ARMv6, all ARMv6-M and for ARMv8-M Baseline architectures, and enabled for all other architectures. If unaligned access is not enabled then words in packed data structures are accessed a byte at a time.

I'll try that, but these values are 64bit rather than 32bit so I'm not sure if that fixes it. I'll edit this issue with the results after testing it.

from pixie.

treeform avatar treeform commented on June 9, 2024

I don't think I got the test right. I wrote little test to point out size and its still 64bit:

size of int: 8 bytes
size of cint: 4 bytes
sise of pointer: 8 bytes
endianness of the CPU: littleEndian

If you can figure out how to test 32bit stuff with github actions we would use it.

from pixie.

ajusa avatar ajusa commented on June 9, 2024

Could you try the same test with armv6? https://github.com/uraimo/run-on-arch-action seems to support that as an option.

But yes, I'll look more into that

from pixie.

treeform avatar treeform commented on June 9, 2024

It does not appear to work run-on-arch: /home/runner/work/_actions/uraimo/run-on-arch-action/v2.0.5/Dockerfiles/Dockerfile.armv6.ubuntu18.04 does not exist.

from pixie.

ajusa avatar ajusa commented on June 9, 2024

armv6 with jessie? See the matrix table

Not sure if your tests work on debian though

from pixie.

ajusa avatar ajusa commented on June 9, 2024

After doing some more testing on the 3DS, it seems that the only line at which I can get it to reliably crash is

    cast[ptr uint64](dst[op].addr)[] = read64(src, ip)

On line 227 of zippy. This is after adding the -munaligned-access flag, which might have gotten rid of the crash within Pixie. Still not really sure why this happens though.

from pixie.

ajusa avatar ajusa commented on June 9, 2024

I talked with "asie" on Discord about the issue I was running into, and they suggested that it is an alignment error specific to armv6 and potentially the 3DS - unaligned reads aren't allowed at all. Not sure if you want to close this issue, feel free to let me know. I can't expect Pixie to support decade old Nintendo hardware 😄

from pixie.

treeform avatar treeform commented on June 9, 2024

Thank you for explaining this all to us.

To keep the scope of this project a little smaller (its already enormous!) we will not be providing support for 3DS hardware with no unaligned-access ability.

Feel free to reopen if you find this issue on more recent hardware.

from pixie.

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.