So are you writting your own crt0 startup code?

Are you also creating the code that takes care to validate if there
are atexit() handlers in need to be called after main?

Are you writing the code that takes care to handle program arguments
and passing them to main() or whatever is your program entry point?

Because if you aren't, then you are using C runtime library no matter what.

--
Paulo


On 03.02.2012 20:32, Manu wrote:
On 3 February 2012 16:45, Paulo Pinto <[email protected]
<mailto:[email protected]>> wrote:

    The only language without runtime is pure assembly.


And C.. there's no requirement to link the CRT in a C app. In fact, in
many of my projects, I don't.
I frequently find that the ONLY function I use from the CRT is
sprintf... which I really should write(/copy) my own version of, so I
can never link a CRT again :P

    All high level languages require a runtime library, even C, despite
    what many people think.


Wrong, the C _language_ depends on NOTHING in the CRT. I prefer to avoid
linking it wherever possible. Strangely enough, I find the 'standard' C
library to be one of the least standard libraries out there, and avoid
it for that reason.

    Now in this case what would be nice would be the possibility to
    generate code that runs on top of the arduino without any
    real OS. This is a common use case in embedded systems and here the
    runtime has even an higher value as it takes the
    role of an OS.


All that's required is a toolchain that's capable of producing an exe
without the requirement to link any compulsory library.

    --
    Paulo
    "Manu" <[email protected] <mailto:[email protected]>> wrote in
    message news:[email protected]...
    On 3 February 2012 15:37, Alex_Dovhal <[email protected]
    <mailto:[email protected]>> wrote:

        __
         >Andrea Fontana" <[email protected]
        <mailto:[email protected]>> wrote:
         >In this case can we hope for a d frontend?
        That depends if it's MCU or MPU. If it will be MCU(like
        ARM7TDMI), which means Harvard Architecture (where Program code
        and RAM are physically different). Also internal RAM of a few KB
        and no Linux.
        If it'll be MCU then it can have Linux OS, so theoretically it
        can have GDC ported.

    Eh? Why would GDC depend on linux at all? If you disable the GC (and
    dependent language functionality), and manage to do something about
    the horrible exe bloat, there's no reason it shouldn't be able to
    target anything...
    The obvious advantage over C is the syntax features. Clearly D as a
    *language* shouldn't DEPEND on the druntime, other than some
    language features that imply GC, like dynamic arrays/etc.
    Is the toolchain not capable of producing a working exe without
    linking any library? Surely you can write a totally raw app with no
    libs at all? (assuming you avoid language features that make
    implicit druntime calls)



Reply via email to