New intermediate release? (was: Re: Mac arm port)
"Chun Tian (binghe)" <[email protected]> Tue, 20 May 2025 12:37:14 +1000
| Newsgroups | gmane.lisp.gcl.devel |
|---|---|
| Organization | The Australian National University |
| Message-ID | <[email protected]> |
This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --bne5o0keHqQnDTDgj7kN1F8CslA0tFRv0 Content-Type: multipart/mixed; boundary="pu0L0J1pdiSwXiKtyedNb6dxCLKuIhyS2"; protected-headers="v1" From: "Chun Tian (binghe)" <[email protected]> To: Camm Maguire <[email protected]> Cc: [email protected] Message-ID: <[email protected]> Subject: New intermediate release? (was: Re: Mac arm port) References: <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]> <[email protected]> In-Reply-To: <[email protected]> --pu0L0J1pdiSwXiKtyedNb6dxCLKuIhyS2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Greetings, That's very interesting (that ARM64 macOS is more optimized in function c= alls of variable arguments), and it seems that GCL's source code becomes more standard-compliant with these fixes. But I wonder if this issue can be avoided (for now) if we use MacPorts GC= C 13 (or 14) to compile GCL on ARM64 macOS? On the other hand, MacPorts maintainers do not like that I included GCL pre-release patches (~3000 lines since 2.7.1 release) as part of the port= definitions. Is it possible that you can make a new (intermediate) releas= e before the ARM64 macOS support is done? It would be even better if you c= an port the "libboot" patch and other necessary changes to GCL 2.6 branch. I thin= k it's definitely not needed to support ARM64 macOS for GCL 2.6.x, but it would = be nice if GCL 2.6.15 (if it's the last 2.6.x release) can run on macOS 15. --Chun On 12/05/25 04:51, Camm Maguire wrote: > Greetings! >=20 > This link spells out what is going on uniquely on this machine: >=20 > https://cpufun.substack.com/p/what-about- >=20 > Briefly, the regular arguments and the elipsis if any needs to be in th= e > right location in the prototype for function calls through pointers to > succeed. One can call a regular function through a variadic pointer if= > the prototype has at lease enough regular arguments in its prototype to= > match the fixed arguments of the function. >=20 > The basic changes needed in gcl are >=20 > 1) h/apply_n.h -- our 64 entry switch table for function calls needs > expanding to ~ 64^2 entries at least in the naive approach. About 2Mb > of code for this table(!) >=20 > 2) The function prototypes in C files produced by the compiler need to > be rewritten. Thankfully one accurate prototype can be used here with > the fast-link mechanism falling back to the apply_n.h table in case of > signature incompatibilities. >=20 > I'm sure there is a better way -- no doubt there are many interpreters > already ported to Mac/arm, and they all have some sort of generic > funcall mechanism. >=20 > Take care, >=20 > "Chun Tian (binghe)" <[email protected]> writes: >=20 >> Greetings, >> >> On 01/05/25 12:54, Chun Tian (binghe) wrote: >>> Greetings, >>> >>> I found another (minor) issue when building GCL in macOS. The system = command >>> "mktemp" of macOS doesn't support "-p" option (in "xbin/mktmp"). How = to rewrite >>> this script by using, e.g., "-t" instead: >>> >>> -p DIR, --tmpdir[=3DDIR] >>> interpret TEMPLATE relative to DIR; if DIR is not speci= fied, use >>> $TMPDIR if set, else /tmp. With this option, TEMPLAT= E must not >>> be an absolute name; unlike with -t, TEMPLATE ma= y contain >>> slashes, but mktemp creates only the final component >>> >>> -t interpret TEMPLATE as a single file name component, rel= ative to a >>> directory: $TMPDIR, if set; else the directory specifi= ed via -p; >>> else /tmp [deprecated] >>> >> >> I just figured out that I can install MacPorts' "coreutils" package, w= hich >> provides the GNU version of "mktemp". >> >> Furthermore, by using MacPorts' "legacy-support" package, the missing >> "readlinkat" system call will be provided. (I will need to learn how t= o use this >> package.) >> >> Therefore no more blocking issues on supporting GCL 2.7 in earlier mac= OS >> versions. You don't need to do anything here. >> >> In general, I think it's totally reasonable for GCL to depend on some = other GNU >> tooling packages (on macOS), including GCC (if necessary). >> >> --Chun >> >=20 --pu0L0J1pdiSwXiKtyedNb6dxCLKuIhyS2-- --bne5o0keHqQnDTDgj7kN1F8CslA0tFRv0 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEES+aY+4laoC0TwmVKFUkg2jrYR8gFAmgr6toACgkQFUkg2jrY R8gPcQ//Q6ckXMmkNRMvbto/vmhuiS3YlRM09b7smdb90VZ57BljO3iUsvRtOltP 6HOLWL0DSM2gUMCnj3WBq8gVuv9OxliBOIVmRE6w2Cx/cAdn1DdRFxPXOEQwfVht rwPw9jh1pTncGqPt8G7/CHV4yJBSKJQZZ2W9qwqZvLw79+QohiUZs1h8G0x9ve/w kZT07HYvXOfERfRezB+LHI1cOkbgNDbFSqm8E2aCRgQaLU8b1GPKXg3Z8gZZoGBG QHJQdjpl3zWSO3sLsXvqjFHQs1YdMOaQ01Ph+WLLMhOj0XINwyfHFXRsCXp0uqtA 4mQ8VrBCkSjam6ANOBUZdCY90VRzwXGFKsMiI/cZ2GYR9M1HNCKWycOruR86PvNN 67m2UcpuNvtvHSfFm0oZwGO77SZXP/Px3yIhkiR7kJNKBaigJxEK04YthDjfxG66 POWKhki4WxYaMPpnkAv7yDVGEYeuWodiAhO/S9/w1zRFzL0ZrZAxxzmUAHMNx1Tp qXQhvOOtqjc7VkL5hXPrdx1+81tuQXq5sp8HXOz5dA+CneZfdcBZzDHDc5Q9h3pn 9GHd4iDxrbPLVhwz/v8UiDSTuXmxIEdia4nGyA3HvSKR6nQN1gmPcW/s72kbmjTS H0HGHyQ7wspoZ9IL48BGCRRzIeSvtlgmu7kzh00KsKEbxRcxMKI= =nRGT -----END PGP SIGNATURE----- --bne5o0keHqQnDTDgj7kN1F8CslA0tFRv0--