11-09-2022, 10:31 PM
(This post was last modified: 11-18-2022, 04:23 AM by DSMan195276.)
(11-09-2022, 12:27 PM)Richard Wrote: I disagree with point #6.
Assembly should be allowed in my opinion - some other BASICs have it.
My understanding is that QB64(pe) will only work on computers with INTEL based processors (putting aside Virtual Machine implementation, which I do not think many users of QB64 are heavily involved with).
So, although QB64 is cross-platform compatible - it will not work on a MAC that is non-Intel - so QB64 is processor (class) specific.
A different perspective, the biggest problem with assembly support is just getting it to actually work without having it be a giant pain to use that breaks when you slightly change your code. If you take a look at inline assembly in C you can get an idea of how it quickly gets complex, the compiler needs to know exactly what your inline assembly does so that the code it produces around it will continue to work correctly.
The alternative of not having you inform the compiler of what your assembly does will make using inline assembly extremely expensive, as we'll have to basically save all state (Ex. registers) beforehand, restore it afterward, and also tell the compiler it cannot rely on any cached reads from memory and has to do them again.