removal of cruft from D

dsimcha dsimcha at yahoo.com
Mon Nov 23 14:28:13 PST 2009


== Quote from retard (re at tard.com.invalid)'s article
> Tue, 24 Nov 2009 00:21:41 +0300, Denis Koroskin wrote:
> > On Mon, 23 Nov 2009 23:04:54 +0300, Pelle Månsson
> > <pelle.mansson at gmail.com> wrote:
> >
> >> dsimcha wrote:
> >>> == Quote from retard (re at tard.com.invalid)'s article
> >>>> Mon, 23 Nov 2009 17:14:54 +0000, dsimcha wrote: [snip]
> >>>>> as opposed to the
> >>>>> Java way of having to use 5 different classes just to read in a file
> >>>>> line by line in the default character encoding.
> >>>> That's a library issue. Has nothing to do with the language.
> >>>  I agree completely, but for all practical purposes basic parts of the
> >>> standard
> >>> library that are used by almost everyone are part of the language.
> >>> Heck, in many
> >>> languages (D being one of them) you can't even write a canonical hello
> >>> world
> >>> program w/o the standard lib.
> >> Sure you can!
> >>
> >> extern (C) int puts(char *);
> >> void main() {
> >>      puts("Hello world!\0".dup.ptr);
> >> }
> >>
> >> Pretty!
> >
> > Even simpler:
> >
> > extern (C) int printf(const(char)* str, ...);
> >
> > void main() {
> >     printf("Hello, World!");
> > }
> Or even bettar
> void print(string str) {
>   void _(int addr, int len) {
>     asm {
>       mov EAX,0x4;
>       mov EBX,0x1;
>       mov ECX, addr;
>       mov EDX, len;
>       int 0x80;
>     }
>   }
>   _(cast(int)str.ptr, str.length);
> }
> void main() {
>   print("hello world");
> }
> My asm skills are a bit rusty, though..
> In this case dmd2 produces 441x larger executables than nasm :)

Notice the word canonical in my orig. post.  By this I meant a "regular" Hello,
world program, not one that uses hacks specifically to avoid the standard library.



More information about the Digitalmars-d mailing list