Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compatibility with ARM CPUs #6

Open
FliegendeWurst opened this issue Nov 12, 2024 · 4 comments
Open

Compatibility with ARM CPUs #6

FliegendeWurst opened this issue Nov 12, 2024 · 4 comments

Comments

@FliegendeWurst
Copy link

FliegendeWurst commented Nov 12, 2024

Currently, the build fails with lots of errors like:

error[E0609]: no field `rax` on type `&user_regs_struct`
   --> src/main.rs:326:43
    |
326 |     syscall.errno = errno_check(registers.rax);
    |                                           ^^^ unknown field
    |
    = note: available fields are: `regs`, `sp`, `pc`, `pstate`

Edit: Just noticed this in your readme

intentrace currently only supports x86-64, given that the program is currently in beta, PRs for cross compatibility will unfortunately not be accepted until the program is stable enough.

I guess this can be considered a tracking issue then. We'll see how many potential users chime in.

Note, we found this while packaging intentrace for nixpkgs/NixOS: NixOS/nixpkgs#354843

@sectordistrict
Copy link
Owner

sectordistrict commented Nov 12, 2024

I generally believe cross compatibility at this stage is technical debt but I'm open for counter arguments, I'll leave this issue open

@koutheir
Copy link

PRs for cross compatibility will unfortunately not be accepted until the program is stable enough.

I think that adding support for fairly different platforms after a stable release will require a fair bit of redesign. It also means less testers and contributors who execute programs on ARMv7-A and AArch64 (for example), which are still very popular architectures.

@sectordistrict
Copy link
Owner

sectordistrict commented Jan 14, 2025

Waiting until intentrace is stable mainly refers to driving intentrace towards feature parity with strace in addition to other intentrace specific goals, figuring out pitfalls and accumulating wisdom once rather N times per architecture is sort of a preventive measure against potential development fatigue on my end.

Fully supporting x86-64 would act as a testing grounds for correctness. Allowing cross-compatibility PRs at a point where intentrace doesn't support basic features like syscall filtering seems unwise, while those are orthogonal concerns it serves as an example of how intentrace is not that mature at the moment.

My original timeline was for intentrace to achieve all of this before April, however, a few events have happened in the real world that contributed to the current commit drought. Mostly me being busy.

@koutheir
Copy link

Waiting until intentrace is stable mainly refers to driving intentrace towards feature parity with strace in addition to other intentrace specific goals, figuring out pitfalls and accumulating wisdom once rather N times per architecture is sort of a preventive measure against potential development fatigue on my end.

If supporting multiple architectures initially would potentially lead you to fatigue, then forget what I said and continue developing as you see fit. Even if a redesign turns out to be necessary later, it's better to do it with motivation, than with a tired mind.

Fully supporting x86-64 would act as a testing grounds for correctness.

Sure.

Allowing cross-compatibility PRs at a point where intentrace doesn't support basic features like syscall filtering seems unwise, while those are orthogonal concerns it serves as an example of how intentrace is not that mature at the moment.

From a user perspective, I agree that cross-architecture support is orthogonal. However, I think cross-architecture support can affect the technical design so much that it is not orthogonal from an implementation perspective.

My original timeline was for intentrace to achieve all of this before April, however, a few events have happened in the real world that contributed to the current commit drought. Mostly me being busy.

Giving people deadlines is a dangerous thing to do. I think remaining motivated in development is a more sane goal to aim for, and stability and additional features will come naturally. Thank you for your efforts, and for sharing your work with the community!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants