← Back to context

Comment by pjmlp

7 years ago

So then C is cheating by your definition, because it is impossible to implement ANSI C standard library without using Assembly or compiler extensions.

I did say a small amount of assembly was fine. By "cheating", I mean something like converting the perl interpreter to assembly code and claiming that perl thus doesn't require code written in some other language.

Leaving out libraries is normal for a systems programming language. It is fine unless the language entirely doesn't work without the libraries.

that's what -ffreestanding and others (-nostdlib) are for.

C is not cheating, the compiler assumes you work on user level stuff. Want to write bare metal (kernel) then you need to tell the compiler.

  • Right, as mentioned on my comment, compiler extensions.

    Strictly speaking that isn't proper C as defined by ISO/IEC 9899:2018.