And with _TEST_ME (a reserved identifier) defined it does not compile
because it's missing the types. Someone else will have to type them in.
That's duplicated even if you, oddly, force others to do the
duplication.
The #ifdef block after _TEST_ME defines those types. They are the types
for Microsoft's C/C++ compilers.
I investigated a bit more and the originals from which you made your
copy used the standard types, so you at least knew of their existence
all along. Your contribution was to remove all reference to them and
substitute your own typedefs -- the ones that need duplicating. If your
compiler is too old have stdint.h you should simply have provided the
required definitions.
I did not realize those types came from stdint.h, but did recognize they
were a particular size. I assumed someone was using a particular size
type on purpose. To keep it consistent with the rest of my code, I
converted those references to my naming conventions, and ran the tests.
How do you know that? A compiler with built-in types might very well
still need files in the right place to work properly -- especially a
cross compiler. Anyway, the argument from a broken compiler install is
a very weak one.
That isn't my argument. None of the compiler installs are broken. They
are all correct. However, because there are so many locations with the
different include files used for their version, forgetting to point to
the correct location could result in code that compiles correctly, yet
is errant in operation.
What will RDC do to prevent mall function when it's not properly
installed -- as a cross compiler? Straws and grasping come
to mind.
RDC uses a notably different ABI than other platforms. It is based on
the model I designed for Exodus. It will include everything it supports
as built-in, first-class citizens. When referenced in code there will
not be a need to include any header files, or anything else. What you
get with the standard libraries will be available, and upon use in source
code those code requirements will be included and linked during launch.
I take it that means you don't contest the point. Or maybe you are
just getting bored with being right all the time?
There are obvious advantages to using stdint.h, though I would still
define my own typedefs atop those clunky names so as to make them into
a usable form. But it's not required. I was able to accomplish the
same thing without knowing anything about C99 or the existence of
int32_t and so on. I came up with a natural conclusion because the
lack of such a feature in C is so overtly obvious. Knowing about
stdint.h would've saved me time, but not much over the years because
the time it took me to investigate what size each was could be
measured in minutes.
You are sorry that I have said something wrong or you are sorry that I
said something right, or are you just sorry that I said anything at all?
If you don't want to comment on something, it's simpler just to cut it
from your reply.
I am sorry to hear that developers would not take the time to check
something like that, at least the first time through, and especially
when migrating to a new system, or a new compiler.
OK, take C++ out and add, I don't know..., ML, Simula, Ruby, Eiffel
(and, for Robert, Algol). The exact number of cases is hardly the
issue. Your experience is rather limited and that means you should be
cautious about making claims about languages "from assembly through
Java" as if that were some wide range.
It is a wide range. Assembly is the machine level. Java is a virtual
machine, originally a fully interpreted language. The scope from the
hardware to the entirely software has fixed components.
My scope in computer languages is limited. I did nearly all of my
development in assembly, xbase, and C/C++, while also writing my own
compilers, interpreters, operating system, in assembly and C. I have
always had a particular vision in mind for what a language should be.
I came to that vision by examining the x86 CPU and asking myself the
question, "Knowing what I know about its design, what would a computer
language designed to run on that hardware need to look like?" And I
went from there. It's the same question I asked myself about how to
build my operating system. I didn't look at existing standards, or
current designs. I looked at the hardware, and then went up from there.
Over the years, and migrating into understanding Itanium later, and ARM
more recently, I am exceedingly glad to see that the design I had for
Exodus, and for my compiler, are exactly in line with what is required
at the machine level. It provides high level abilities as through the
C-like language, yet low-level abilities to not be so far away from the
machine to prevent many features which are hidden away today from it in
C source code, to be employed.
Time will tell. I am one many alone working on these projects. It will
be God Himself who allows me to complete them, as I also have a full-time
job, a two-hour per day commute, and family time which comes before my
work on Visual FreePro, the RDC compiler framework, the RDC programming
language, the IDE, debugger, and virtual machine. It's a lot of work for
one man. I keep asking people to help me, but because I am writing this
for Jesus Christ, and not to get rich or for some other non-Jesus Christ-
based reason, nobody is willing to help me. So, as I say, it will be God
alone who grants me the ability to complete this project.
It's interesting that about two hours ago I said this prayer to myself:
Dear God, I desire to complete these projects. I desire to complete the
work I have started. But beyond that, I desire to serve you with my life.
I would rather forgo everything I have started with these projects and
walk away knowing in my heart that I am serving you with my life, than
to pursue these projects knowing that I am walking away from you with my
life.
My heart is focused on serving God. And I desire it more than anything
else. Even more than completing this Village Freedom Project I began
back in July, 2012 with the current version of Visual FreePro I am
pursuing (virtual machine, RDC compiler framework, integrated IDE,
debugger, and plugin framework).
Best regards,
Rick C. Hodgin