<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 10 June 2015 at 09:02, deadalnix via Digitalmars-d <span dir="ltr"><<a href="mailto:digitalmars-d@puremagic.com" target="_blank">digitalmars-d@puremagic.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Wednesday, 10 June 2015 at 04:55:43 UTC, Rikki Cattermole wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I think that a lot of the people asking for a 2.067 LDC are just users<br>
of D, and (I am including myself in this group) a lot of those people<br>
don't know the first thing about LLVM or good complier design in<br>
general. While it may seem dishonest for people to ask for these things<br>
and not help, keep in mind that the vast majority of programmers are not<br>
even able to help.<br>
</blockquote>
<br>
I for one would love to help. But I barely understand X86. Not to mention having to get a setup going ext. Not really worth it right now for me.<br>
<br>
Although I'd rather work on SDC instead of LDC. Primarily because well it's so shinyyyyyy.<br>
<br>
I would be happy to write a book to teach compiler development from everything from basic x86 encoding to complex optimization strategies. If only I knew it and yes I know they exist just wrong method for teaching it IMO.<br>
</blockquote>
<br></span>
Lately, I've been listening to a playlist of interview, presentations and other thing involving Elon Musk. The playlist is hours long and I'm listening to it while doing other things.<br>
<br>
After selling paypal, Musk wanted to use part of his money to revive the desire to explore space. What he plan to do is to send a plant on Mars, a very symbolic stunt that would, he hopes, renew the interest in space exploration, maybe increase NASA funding or whatnot.<br>
<br>
Thing is, he doesn't know about space that much. He has a physic major working on batteries, and then went to have a payment processing company. So he could have said, like you guys, "well I don't know much about space/compiler let's wait for others to make things happen". But nope, he went to talk to space specialists, engineer and scientists, and then, went got in touch with some Russian to buy refurbished ICBM in order to start experimenting.<br>
<br>
One of the notable thing is how amazed people are that he went to buy ICBM from the russian. Well guess what, that is one of the cheapest thing that can go into space, so if you want to make something happen, that is an excellent starting point.<br>
<br>
I can continue the story with myself (because everyone knows I compare to Elon in so many ways, and he is greatly inspired by my vision and capability to make things happen). Recently I got to a point on SDC where working on the GC became an important item. Thing is, I know about compiler not memory allocator. Having low level knowledge of how the CPU operate does not provide me wisdom about what kind of algorithm and datastructure will behave nicely on a typical wokload.<br>
<br>
So I went to read tcmalloc source code, jemalloc source code, libc's malloc, I read a ton of paper about various allocators, and went after Jason Evan - one of the great perk of working for Facebook is to have all these amazing people who can make you feel like an idiot because they know so much more than you do - as to get as much of the "why" as possible. the code told me the "what/how" but that is not sufficient to get a good grasp of the matter at hand.<br>
<br>
Making things happen is not about waiting for the wisdom to fall from the sky to deliver you the deep and arcane knowledge of compiler/memory management/rocketry . It is about learning enough to get started, and then start do do thing while continuing to learn more.<br>
<br>
To get back on point, yes some task in LDC or SDC (or DMD, or GDC) require some good knowledge of compiler stuff. Obviously, these are compiler, and I'd add D compiler, which involve a certain level of complexity. But let's be honest, a good chunk of the work is not guru level compiler arcane. Most of the work is actually dumb shit that just need to be done like it is for all other software.<br>
<br></blockquote><div><br>+1<br><br></div><div>The current 'arcane' job being done in my camp is encapulating related codegen routines under a single umbrella.<br></div><div> <br></div></div></div></div>