todo statement, -beta and -airy compiler options
janderson
askme at me.com
Sat May 26 15:18:43 PDT 2007
Manfred Nowak wrote:
> It seems common practice to put a hint to not yet implemented code in
> a comment starting with "TODO" or similar wording.
>
> Therefore I believe that compiler assistance for this behaviour
> should be available.
>
> The language allows for a `todo' statement, which may be a keyword-
> only statement or similar to a line comment starting with keyword
> `todo'.
I don't think anything that changes the output of code should be
im-beded in comments, it would be hard to debug.
>
> The compiler allows for an option "-beta", which has the semantics of
> issuing a "still alpha stage" error iff there are `todo' statements
> in the code.
In C++ I've done this before using the macro language. Instead of
passing in =beta you'd pass in a BETA pre-define. Actually it was more
complicated then that. We had several levels of todo Alpha_TODO(),
Beta_TODO(), Milestone_TODO(), Sprint_TODO() ...
>
> The current semantics of the compiler option "-release" then sticks
> with a new
> "-airy" or
> "-dmc" ( short for "devil may care")
> option.
While having some todo support in the code would be nice, I'm not sure
how it would be supported. And I don't think its useful enough to earn
its own keyword.
In C++ I used to put in message pragmas. It would be nice if you could
some how generate a message like "There are 91 todos left in the code".
I imagine that something like that could be done in a way that is
useful for all sorts of thing other then just todos. If you had compile
time globals, it would be possible to write the code yourself. It is
possible in C++ macros, but it is as nasty as hell.
>
> The "-release" option becomes a shortcut for
> "-beta -airy -O -inline".
A release option would be nice.
>
> The current semantics of "-O" and "-inline" is changed so that an
> XORing with the semantics provided by "-release" takes place. I.e.:
> - if "-release" is present on the command line
> -- any additional "-O" disables optimization, and
> -- any additional "-inline" disables inlining
> - if "-release" is _not_ present on the command line, then the
> command line options "-O" and "-inline" keep their current semantics.
This is very confusing and bug prone. It also means more work for IDE
writers. I'd recommend using a different symbol to turn off things, ie
"--O" "--inline".
>
> -manfred
More information about the Digitalmars-d
mailing list