Comments (11)
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.
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.
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.
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.
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.
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.
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.
armv6 with jessie? See the matrix table
Not sure if your tests work on debian though
from pixie.
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.
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.
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)
- Some jpegs fail to load with "Invalid JPEG, invalid chunk marker" (pixie 5.0.1) HOT 1
- Compile using cpp backend HOT 5
- When importing library get error HOT 2
- Raw file format support HOT 2
- something wrong a.draw(b) with alpha? HOT 2
- {1, 2} should be 1..2 or {1'u16, 2}
- SVG error does not support non integer width,height
- Request: Text hAlign = JUSTIFY_ALIGN
- Unsupported SVG tag: use [PixieError] HOT 1
- Support other interpolation methods in drawing operations
- Windows GCC error: Pixie doesn't work HOT 1
- Missing library crunchy (added in 5.0.5)? HOT 3
- Doesn't run if compiled using nim cpp? (C++) HOT 2
- Cannot compile pixie 5.0.6 on windows 11 64bit HOT 12
- The API Reference documentation appears to be down HOT 1
- Help: readImage from memory HOT 3
- SVG radialGradient defs/url support HOT 3
- Working with pixel size <= byte HOT 2
- Need a way to access Font.typeface.opentype HOT 4
- The API docs are down and/or overloaded HOT 1
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 pixie.