Improving assert-printing in DMD

H. S. Teoh via Digitalmars-d digitalmars-d at puremagic.com
Tue Sep 29 14:16:53 PDT 2015


On Tue, Sep 29, 2015 at 09:02:40PM +0000, Nordlöw via Digitalmars-d wrote:
[...]
> 2. Is it possible to from within DMD generate expressions that do
> 
> `import std.stdio : write`
> 
> and then calls write on the `lhs` and `rsh`...or this a completely
> wrong approach to solving this problem?

I dunno about right or wrong approaches, but something like this would
make the compiler dependent on Phobos, which is a big no-no for those
embedded OS people who need to be able to plug in their own runtime
without being forced to implement what Phobos implements, which may lead
to prohibitive bloat for embedded software.

The most that the compiler can depend on is druntime, which,
fortunately, does depend on the C library (so far), so perhaps you
could get away with `import std.c.stdio : printf;` and using C-style
printf() calls to print the output. The existing stacktrace dump
functions may already be using printf from the C library, and the
standard C library seems common enough even on embedded platforms that
you can probably get away with it.

Alternatively, maybe what you really want is for the compiler to emit a
call to a druntime function that does the printing, then the people who
need to replace druntime with their own lightweight version can simply
implement this function, and things would Just Work.


T

-- 
Любишь кататься - люби и саночки возить. 


More information about the Digitalmars-d mailing list