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