Reddit: SafeD - The Safe Subset of D

Kevin Bealer kevinbealer at gmail.com
Tue Mar 25 10:48:25 PDT 2008


Walter Bright Wrote:

> Clay Smith wrote:
> > Is SafeD just a label for the programmer selectively using D features?
> 
> Yes, but it would also be enforced by a compiler switch.

When a project gets to a certain size you will often want to add some unsafe
code, but a switch suggests that the whole file (or project) now has to be safe
or unsafe as a single block.  A version statement could be used to mark the
unsafe areas of an otherwise "safe" file:

version(unsafe) {
some code;
}

or 

version(unsafe):

This allows islands of unsafety.  A compiler switch could be defined as a way of disabling
all unsafe code within a module, then an "unsafe" marker in a class could indicate parts of the API that are hidden from "safe" code.

class MyVector {
    int foo();
    int bar();

unsafe:
    int baz();
};

MyVector v...;
v.baz(); // error

version(unsafe) {
   b.baz(); // okay
}

Is the "in" operator (for AAs) safe?

Kevin



More information about the Digitalmars-d-announce mailing list