Closed barracuda156 closed 1 year ago
Can you please tell me more about the system you're using (ppc32)?
malloc errors are a known issue caused by duplicate libstdc++; those are unlikely to cause test errors.
Do you mean the malloc errors at the start of the session are not unexpected? My first thought reading the report is that those were caused by rlang on load (via RProfile or other). So they're not technically part of the report right?
From a cursory look, the tests do point to a fundamental problem. If you're indeed trying to port R on a non standard platform, can you please investigate and see if rlang does anything wrong.
@lionel- Thank you for responding!
Re malloc
errors: they are part of the report, but are not specific to either R
or rlang
. Within R
, they occur with a number of packages, though not all. Reasons are explained here by a GCC developer: https://github.com/iains/darwin-toolchains-start-here/discussions/20
Re platform: this is on macOS 10.6.8, building for ppc
(32-bit, Big endian). (Yes, this is an old system, but we actively support it in Macports.)
I am very much interested to have rlang
fixed: it is one of the fundamental ports. Could you advise me how to proceed with debugging?
@lionel- I am looking at the code in the test now; does it assume size of Bool to be 1 byte? That will explain failures: Bool is 4 bytes on Darwin ppc32. Ref: http://personal.denison.edu/~bressoud/cs281-s07/MacOSXLowLevelABI.pdf (page 9)
yup good find, I think we do assume single bytes for bools in these tests.
According to https://stackoverflow.com/a/5067749/1725177, gcc has a switch to use size-1 bools.
yup good find, I think we do assume single bytes for bools in these tests.
@lionel- I do not know how to make a specific fix for that though :) In principle, either there should be a test for a size of bool or otherwise it should be defined conditionally, like:
#if defined __APPLE__ && defined __ppc__
. . .
#else
. . .
We can either skip these tests, and risk reintroducing an issue in the future because we're not actively testing against this kind of platform, or you could compile with size-1 bools. Up to you.
Since I don't have much time for this, I'll probably skip the whole c-api file on your platform.
We can either skip these tests, and risk reintroducing an issue in the future because we're not actively testing against this kind of platform, or you could compile with size-1 bools. Up to you.
Since I don't have much time for this, I'll probably skip the whole c-api file on your platform.
If this issue only affects tests but not rlang
performance otherwise, we can live with that.
@lionel- Just to make sure, this error is only test-related, should not break anything with rlang
functionality otherwise?
I think so but I haven't reviewed all our code across all our packages (rlang and vctrs in particular) for size > 1 bools. PPC32 support is extremely low priority and has already taken up too much time.
The fact that the other tests seem to pass in your report is a good sign though.
I think so but I haven't reviewed all our code across all our packages (rlang and vctrs in particular) for size > 1 bools. PPC32 support is extremely low priority and has already taken up too much time.
The fact that the other tests seem to pass in your report is a good sign though.
Thank you.
Yeah I don’t expect any active maintenance, as long as nothing is broken on purpose, minor incompatibilities can be handled on our end.
System info: macOS 10.6.8 Rosetta (
ppc32
),gcc
12.2.0,R
4.2.2 +builtin_lapack+cairo+gcc12+openmp+recommended+tcltk+x11P. S.
malloc
errors are a known issue caused by duplicatelibstdc++
; those are unlikely to cause test errors.