On 10/06/2015 7:35 p.m., Iain Buclaw via Digitalmars-d wrote:
On 10 June 2015 at 09:11, Rikki Cattermole via Digitalmars-d
<digitalmars-d@puremagic.com <mailto:digitalmars-d@puremagic.com>> wrote:
On 10/06/2015 7:02 p.m., deadalnix wrote:
On Wednesday, 10 June 2015 at 04:55:43 UTC, Rikki Cattermole wrote:
I think that a lot of the people asking for a 2.067 LDC
are just users
of D, and (I am including myself in this group) a lot of
those people
don't know the first thing about LLVM or good complier
design in
general. While it may seem dishonest for people to ask
for these things
and not help, keep in mind that the vast majority of
programmers are not
even able to help.
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.
Although I'd rather work on SDC instead of LDC. Primarily
because well
it's so shinyyyyyy.
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.
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.
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.
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.
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.
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.
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.
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.
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.
You don't wait to know how to paint like Rembrandt to start
painting.
Because that will never happen. You just paint dumb shit again and
again, trying to make the new shit a bit less shitty than the
old shit.
You do that while studying Rembrandt's techniques. And, after
thousand
of painting, you finally get there.
I'm well aware.
I've been hammering out over long term to learn the underlying
technologies.
For example writing a PE-COFF linker.
My experience is well ugh lets just say, if something seems hard and
almost impossible maybe something isn't quite right.
Unfortunately I'm in a war of attrition trying to learn x86 and
friends. And its a long one!
Good luck with that. :-)
Thanks, I just wish we weren't in the current situation hardware wise.