Fred à posté un nouvel article sur le blog.
https://www.purebasic.fr/blog/?p=480
(Pour ceux qui ne seraient pas anglophones et n'auraient pas accès à un traducteur en ligne ou au blog, traduction automatique ci-dessous)
TL;DR

PureBasic et les variétés croissantes de CPU
Les premières versions de PureBasic ont débuté sur Amiga, avec le support de la série de CPU Motorola 680×0. PureBasic a été conçu dès le départ pour générer du code assembleur brut, et le premier back-end assembleur CPU fonctionnel était celui du 680×0. Comme l'audience sur Amiga diminuait rapidement, nous avons décidé de passer au PC. En 1998, il n'y avait qu'une seule architecture de CPU PC, le x86, et il a été décidé d'ajouter un nouveau back-end d'assemblage pour celui-ci. C'est une tâche qui prend beaucoup de temps et qui demande beaucoup d'apprentissage pour être capable de gérer un nouvel assemblage. Les architectures 680×0 et x86 sont assez opposées, mais elles s'adaptaient à l'architecture PureBasic et PureBasic pour x86 était une réalité.
Peu de temps après, nous avons décidé d'opter pour la multiplateforme et de prendre en charge OS X, qui fonctionnait sur des processeurs PowerPC. Un nouveau back-end d'assemblage était nécessaire et nous avons recommencé, pendant presque une année entière pour obtenir quelque chose de fonctionnel. Peu de temps après, Apple a annoncé qu'ils allaient abandonner le support de PowerPC et choisir x86 à la place ! Ce fut un coup dur pour nous, et une perte de temps considérable. Entre-temps, x86-64 est sorti et a lentement gagné en popularité et nous savions que nous devions le supporter également. Contrairement à ce que le nom suggère, x86 et x86-64 sont deux bêtes différentes, et beaucoup de travail a été nécessaire pour y parvenir. Mais l'informatique évolue rapidement et une nouvelle architecture de CPU est apparue et a pris le monde d'assaut, d'abord sur les mobiles, puis sur les petits ordinateurs et maintenant sur les ordinateurs de bureau : ARM et ARM-64.
Pour prendre en charge ces nouvelles plates-formes, nous sommes à nouveau confrontés au même problème : nous avons besoin de nouveaux back-ends d'assemblage. En tant que petite entreprise, nous ne pouvons pas consacrer une année entière à chaque fois qu'un nouvel assemblage émerge, nous devons donc trouver une solution à l'épreuve du temps. Entre-temps, un fork du compilateur PureBasic a été créé pour générer un langage de haut niveau au lieu de l'assembleur brut. Cela a permis de créer SpiderBasic, un langage similaire à PureBasic qui peut fonctionner sur le navigateur en générant du code JavaScript.
Lorsqu'Apple a annoncé que ses nouveaux ordinateurs fonctionneraient sur ARM, nous savions que nous devions changer notre façon de gérer l'architecture des nouveaux processeurs et nous avons décidé de tirer parti du travail déjà accompli par SpiderBasic et de le porter à nouveau pour PureBasic. Nous avons beaucoup expérimenté avec LLVM depuis un certain temps déjà, mais c'est un casse-tête de le trouver sur toutes les architectures. De plus, c'est une sorte de mélange entre le code d'assemblage et le langage de haut niveau, ce qui ne correspondait pas à l'architecture dorsale de PureBasic ou de SpiderBasic. Au cours des 8 derniers mois, nous avons décidé de nous concentrer sur un nouveau back-end de haut niveau pour PureBasic : le langage C.
La bonne nouvelle est que l'ensemble des tests du compilateur PureBasic fonctionne avec succès sur le back-end C. Nous sommes donc très confiants quant à la possibilité d'avoir un compilateur prêt à tester rapidement. Restez à l'écoute, plus de détails à venir !
Traduit avec http://www.DeepL.com/Translator (version gratuite)
--- VO
PureBasic and increased varieties of CPU
Early versions of PureBasic started on Amiga, with the support of the Motorola 680×0 CPU series. PureBasic has been designed from start to generate raw assembly code, and the first working CPU assembly back-end was the one for 680×0. As the audience on Amiga was quickly falling, we decided to move on PC. In 1998, there was only one PC CPU architecture, the x86, and it was decided to add a new assembly back-end for it. It is a very time consuming task and requires a lot of learning to be able to handle a new assembly. 680×0 and x86 architectures are quite opposite but it fitted in the PureBasic architecture and PureBasic for x86 was a reality.
Shortly after, we decided to go really cross-platform and support OS X, which was running on PowerPC processors. A new assembly back-end was needed and we did it again, during almost a full year to get something working. Shortly after, Apple announced they will drop support for PowerPC and choose x86 instead ! That was a huge blow for us, and a lot of time wasted. In the meantime, x86-64 was released and slowly gaining traction and we knew we should support it as well. Unlike the name suggests it, x86 and x86-64 are two different beasts, and a lot of work was needed to make it happen. Once done, we though we could finally focus on functionalities for a while, but computer science is evolving at quick rate and a new CPU architecture appeared and took the world by storm, first on mobiles, then on tiny computers and now on desktop: ARM and ARM-64.
So here we are, to support these new platforms, we face the same issue again: we need new assembly back-ends. As a small company, we can’t dedicate a whole year every time a new assembly emerge, so we need to find a future proof solution. Meanwhile, a fork of the PureBasic compiler has been created to generate high-level language instead of raw assembly. This allowed to create SpiderBasic, a PureBasic-like language which can run on the browser by generating JavaScript code.
When Apple announced their new computers will be running on ARM, we knew we needed to change our way to handle new processors architecture and we decided to leverage the work already done of SpiderBasic and port it back for PureBasic. We experimented a lot with LLVM for quite a time now, but it is an headache to find it on all architectures. Also it’s a kind of mix between assembly code and high-level language so it didn’t fit either PureBasic or SpiderBasic back-end architecture. For the past 8 months, we decided to focus on a new high-level back-end for PureBasic: the C language.
The good news is the whole PureBasic compiler test suit is successfully running on the C back-end, so we are very confident we could have a compiler ready to test quickly. Stay tuned, more details to come soon !
--- La suite des réactions (en anglais) ci-dessous
https://www.purebasic.fr/english/viewto ... 92#p567092
