Thread overview | ||||||
---|---|---|---|---|---|---|
|
April 28, 2007 Suggestion: non-fatal failed imports | ||||
---|---|---|---|---|
| ||||
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 |
April 28, 2007 Re: Suggestion: non-fatal failed imports | ||||
---|---|---|---|---|
| ||||
Posted in reply to Bill Baxter | "Bill Baxter" <dnewsgroup@billbaxter.com> wrote in message news:f0u9pk$1cgd$1@digitalmars.com... >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. > Probably not quite what you're looking for (and untested), but using a const uint and having each bit represent an option, and use static if? Might even work at runtime; I just randomly thought of it right now. > --bb |
April 28, 2007 Re: Suggestion: non-fatal failed imports | ||||
---|---|---|---|---|
| ||||
Posted in reply to Bill Baxter | 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
|
April 28, 2007 Re: Suggestion: non-fatal failed imports | ||||
---|---|---|---|---|
| ||||
Posted in reply to Gregor Richards | 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. |
Copyright © 1999-2021 by the D Language Foundation