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

Warn users on 32-bit CPUs and big-endian CPUs #5074

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion lib/init.g
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,7 @@ end );

BindGlobal( "ShowKernelInformation", function()
local sysdate, linelen, indent, btop, vert, bbot, print_info,
config, str, gap;
config, str, gap, warnings;

linelen:= SizeScreen()[1] - 2;
print_info:= function( prefix, values, suffix )
Expand Down Expand Up @@ -474,6 +474,22 @@ BindGlobal( "ShowKernelInformation", function()
Print( " Maximum concurrent threads: ",
GAPInfo.KernelInfo.NUM_CPUS, "\n");
fi;

# Warn about poorly tested, or unsupported, variants of GAP
warnings := [];

if GAPInfo.BytesPerVariable = 4 then
Add( warnings, "32-bit CPUs");
fi;
if GAPInfo.KernelInfo.BIGENDIAN_CPU then
Add( warnings, "Big-endian CPUs");
fi;

if warnings <> [] then
print_info("\n **** Warning, this copy of GAP was built for: ", warnings,
"\n **** This configuration is not officially supported or tested \n\n");
fi;

# For each library or configuration setting, print some info.
config:= [];
# always mention GMP
Expand Down
6 changes: 6 additions & 0 deletions src/gap.c
Original file line number Diff line number Diff line change
Expand Up @@ -1150,6 +1150,12 @@ static Obj FuncKERNEL_INFO(Obj self)
AssPRec(res, r, False);
#endif

#ifdef WORDS_BIGENDIAN
AssPRec(res, RNamName("BIGENDIAN_CPU"), True);
#else
AssPRec(res, RNamName("BIGENDIAN_CPU"), False);
#endif

MakeImmutable(res);

return res;
Expand Down