[DGD] Scope call syntax

Blain blain20 at gmail.com
Mon Feb 13 22:10:30 CET 2017


I have this bad habit of letting up on the SHIFT key while typing "::" and
doing "mylib:;func()".  A few times, it's actually caused (or seemed to
cause) a segfault.


So, I made a bare instance with klib only and had System/initd load an
object which inherited a lib using the typo, and, not only did it not bug
out or error at all, it ignored the "mylib:;" part.
Syntactically-speaking, what does DGD see "mylib:;" as?  I'm sure the
reason for the segfault was mylib:;create() recursively calling the local
create(), so that's not my question.  I'm curous why mylib: is being seen
as kosher LPC.  As an aside, could the recursive segfault be fixed to just
abort and error out, possibly?  I'm finding a lot of ways where a wayward
user could crash DGD maliciously.

Example code:

[System/lib/lib.c]

void func() { DRIVER->message("func called\n"); }

[System/obj/obj.c]

inherit mylib "~System/lib/lib";

void create() { mylib:;func();  }



More information about the DGD mailing list