dmd Arm64 - first function compile!

ryuukk_ ryuukk.dev at gmail.com
Mon Jun 3 20:59:56 UTC 2024


On Monday, 3 June 2024 at 18:58:48 UTC, Temtaime wrote:
> On Sunday, 2 June 2024 at 06:30:18 UTC, Walter Bright wrote:
>> In recent days, it has become abundantly clear that the x86 
>> architecture appears to be headed for obsolescence. The Arm 
>> processor is taking over. The Mac is dropping the x86 in favor 
>> of Arm. Microsoft has announced Arm laptops.
>>
>> Even my Raspberry Pi is an Arm64.
>>
>> What to do about dmd? Many people in the D community have 
>> expressed interest in creating an Arm backend for D. Since 
>> implementing a 64 bit code generator is trivial, I thought I'd 
>> look into it.
>>
>> I bought a couple books on the Arm, and have been studying the 
>> datasheet for it. Most of the backend can be repurposed to 
>> Arm. The structure of it can remain the same.
>>
>> The goal is Arm64, not Arm32. Since even the Pi is Arm64, 
>> there is no purpose in supporting the Arm32.
>>
>> Hacking away listening to Brain Pain metal, the first function 
>> compiles:
>>
>> ```
>> void foo() { }
>> ```
>>
>> dmd -c test.d -vasm
>>
>> producing:
>>
>> ```
>> _D4test3fooFZv:
>> 0000:   D6 5F 03 C0  ret
>> ```
>>
>> And there it is! Nothing else works, but what the heck.
>>
>> https://github.com/WalterBright/dmd/commit/04546a8f72c10a09764f23675c67c5fbdf29628c
>
> Adding new features is always exciting, but it is crucial to 
> ensure that these features are fully developed and bring real 
> value to the users. Incomplete features can lead to confusion 
> and frustration, ultimately hindering productivity rather than 
> enhancing it.
>
> I would like to urge the development team to reconsider the 
> current strategy and prioritize the completion and perfection 
> of existing features before introducing new ones. By doing so, 
> we can ensure a more robust, reliable, and user-friendly 
> programming language.

This is getting tiring, you are getting tiring

If you don't understand the value, refrain from posting negativity

If you have an issue from the tracker that requires more 
attention, create a separate thread and discuss there instead of 
spamming here

People are free to explore new things, programming should not be 
a monotonous task that only slaves do

Having ARM support means one can keep working on the language in 
a world that is transitioning to ARM, perhaps not for everyone, 
but totally for consumer PCs

It is also an opportunity to look at old code and perhaps 
reorganize things and perhaps solve long standing issues along 
the way, it can only be useful


DMD is a strength many languages doesn't have

- VERY fast

- good enough performance

- free from LLVM

Having ARM means staying relevant, attracts people interested in 
ARM and more importantly promotes the language, no language is 
bug free, but that shouldn't detract us from moving forward 
instead of decaying and dying



More information about the Digitalmars-d mailing list