Suggestion: non-fatal failed imports

Bill Baxter dnewsgroup at billbaxter.com
Sat Apr 28 02:52:59 PDT 2007


Gregor Richards wrote:
> Bill Baxter wrote:
>> I was thinking, in my Luigi lib, I was just thinking about adding 
>> support for Schooner's fonts.  But I don't want to require that in 
>> order to compile. Ok so I could add yet another version flag, but I 
>> was thinking that it would be nice if support for fonts could just be 
>> compiled in if found and not otherwise.
>>
>> So what if there were something like try/catch for imports?
>>
>> This works in Python, of course it's no problem there because imports 
>> are done at run time.  But it is a fairly commonly used idiom there, 
>> which says to me that if it exists it will get used.
>>
>> Anyway, I seek some better way to control various optional 
>> dependencies than lots of --version flags.
>>
>> --bb
> 
> I actually considered adding something like this as a DSSS feature, but 
> decided it would be too much of a hack. It would be nifty if this was a 
> language feature.
> 
>  - Gregor Richards

All we need is static try catch ;-)

static try {
    import missing.module;
} catch(CompileTimeImportException e) {
    pragma(msg, "Compiling without support for missing.module")
}
else {
    version = usingMissingModule;
}


Or something like that.



More information about the Digitalmars-d mailing list