Thread overview | |||||
---|---|---|---|---|---|
|
December 17, 2016 feature request: nim's compilation option pragmas | ||||
---|---|---|---|---|
| ||||
Attachments:
| Could we support something similar to nim's compilation option pragmas [1]: ``` {.push checks: off.} # compile this section without runtime checks as it is speed critical # ... some code ... {.pop.} # restore old settings ``` in D could look like: ``` pragma(push, "-noboundscheck -O -release"); // compile this section with specified flags as it's critical pragma(pop); ``` [1] http://nim-lang.org/docs/manual.html#pragmas-compilation-option-pragmas |
December 18, 2016 Re: feature request: nim's compilation option pragmas | ||||
---|---|---|---|---|
| ||||
Posted in reply to Timothee Cour | On Sunday, 18 December 2016 at 04:46:34 UTC, Timothee Cour wrote:
> Could we support something similar to nim's compilation option pragmas [1]:
>
> ```
> {.push checks: off.}
> # compile this section without runtime checks as it is speed critical
> # ... some code ...
> {.pop.} # restore old settings
> ```
>
> in D could look like:
>
> ```
> pragma(push, "-noboundscheck -O -release");
> // compile this section with specified flags as it's critical
> pragma(pop);
> ```
>
> [1] http://nim-lang.org/docs/manual.html#pragmas-compilation-option-pragmas
That approach has a number of problems.
Basically the optimizer works at module scope, I'd be difficult to constrain it's use.
Secondly what happens if conflicting options are nested ?
|
December 18, 2016 Re: feature request: nim's compilation option pragmas | ||||
---|---|---|---|---|
| ||||
Posted in reply to Timothee Cour | On Sunday, 18 December 2016 at 04:46:34 UTC, Timothee Cour wrote: > Could we support something similar to nim's compilation option pragmas [1]: > > ``` > {.push checks: off.} > # compile this section without runtime checks as it is speed critical > # ... some code ... > {.pop.} # restore old settings > ``` > > in D could look like: > > ``` > pragma(push, "-noboundscheck -O -release"); > // compile this section with specified flags as it's critical > pragma(pop); > ``` > > [1] http://nim-lang.org/docs/manual.html#pragmas-compilation-option-pragmas Afaik this Nim feature is inspired from Object Pascal: http://www.freepascal.org/docs-html/3.0.0/prog/progsu63.html. |
Copyright © 1999-2021 by the D Language Foundation