Autorii de pachete atenți au observat deja ceva nou în pagina lor r-universe în ultimele săptămâni: R-universe a început în liniște să construiască și să verifice pachete pentru Windows ARM64.
R-universe acceptă ARM64 pe Linux și macOS deja de ceva timp, dar nu și Windows. Cu această adăugare, pachetele sunt acum construite și verificate pe ambele x86_64 şi ARM64 pe toate sistemele de operare majore, făcând ecosistemul R să fie complet pregătit pentru ARM.
Portarea ecosistemului R la ARM Windows
Serviciul R-universe face parte dintr-un efort mai larg al comunității de a aduce ecosistemul R la Windows ARM64. Acest proiect se bazează pe munca lui Tomáš Kalibera, ale cărui eforturi au pus o mare parte din bazele pentru modernizarea R pe Windows pentru a sprijini UCRT și ARM.
Ce a trebuit să reparăm pe parcurs
Lansarea acestui lucru pe R-universe s-a dovedit a fi o modalitate excelentă de a afla care părți ale ecosistemului nu erau tocmai pregătite pentru Windows pe ARM. Câteva lucruri care au avut nevoie de corecție:
- Instalatorii de bază R înșiși, pentru a prelua binarele ARM64 din calea corectă a depozitului.
- Software extern, cum ar fi JAGS, care avea nevoie de unele modificări pentru compilare
rjagsşirunjagspentru brat. - Integrarea Rust: multe pachete R care foloseau Rust codificau
x86_64-pc-windows-gnuţintă. Proiectul extendr a livrat o remediereextendr-api0.8.2, iar rustup acceptă acumaarch64-pc-windows-gnullvmținta de care avem nevoie. - Pachete mari compilate, cum ar fi arrow, plus alte câteva zeci de pachete cu probleme precum trecerea necondiționată
-mssesteagurile compilatorului (cipurile ARM nu fac SSE) sau scripturile autoconf detectează greșit lanțul de instrumente.
Pentru pachetele CRAN și Bioconductor rupte, menținem un set de corecții la momentul instalării și suntem în proces de upstreaming a acestor corecții către menținătorii pachetului. Cu aceste patch-uri la locul lor, întregul ecosistem R se bazează acum pe Windows ARM64. 🎉
Testare în lumea reală
Faptul că totul se construiește nu garantează încă că totul se comportă exact așa cum era de așteptat. Ne-ar plăcea să ajute utilizatorii pentru a găsi orice capăt liber. Prin urmare, dacă rulați Windows pe hardware ARM sau utilizați o mașină virtuală Windows pe MacOS, ne-ar plăcea să faceți acest lucru.
Pentru dezvoltatorii de pachete există mai multe modalități de a testa pachetele cu cod compilat pe Windows ARM64. După cum sa menționat, dacă pachetul dvs. este deja pe CRAN sau BioConductor, puteți găsi fișiere binare și puteți verifica rezultatele pe R-universe la https://cran.r-universe.dev/{pkg} sau https://bioc.r-universe.dev/{pkg}.
Ajutând ecosistemul să evolueze
Acest proiect este exact unul dintre motivele pentru construirea sistemului R-univers. Pe lângă faptul că oferă un spațiu deschis pentru dezvoltatori pentru a publica software-ul nou, acesta servește și ca o infrastructură versatilă care ne permite să experimentăm cu noi instrumente și platforme pentru a ajuta la promovarea ecosistemului în ansamblu. Având o platformă automatizată care construiește în mod continuu mii de pachete, a făcut posibilă găsirea acelor piese lipsă, remedierea lor și repetarea rapidă.
Prin identificarea și remedierea principalelor obstacole acum, dorim să ajutăm autorii de pachete să abordeze problemele înainte de a atinge utilizatorii finali și să deschidem calea pentru o introducere fără probleme a suportului Windows ARM64 în depozitele principale, cum ar fi CRAN și Posit Package Manager, atunci când timpul este gata.
