On Sat, Jul 13, 2013 at 9:05 AM, Ary Borenszweig
<ary@esperanto.org.ar> wrote:
On 7/12/13 5:42 PM, Tofu Ninja wrote:
So I had an idea recently, wouldn't it be cool to have the ability to
call an executable at compile time and capture its output. Something
like the string imports but instead of opening and reading a text file,
it run an executable, waits for it to finish, and grabs its output.
It would get really cool if you could pass this executable some args and
then mix in its out put into your own code. It could be used similarly
to how CTFE are used but with out the overhead of trying to compile that
function and what not and with out the limitations on what it can do.
I could imagine all sorts of things that would be possible with this
that is currently not.
Not sure if this is something that could be implemented easily, but
seems like something that could be done and something that would be
really cool.
What would actually be cool is to run any kind of code at compile time (within a sandbox, if you want). For example reading a mysql database and generating classes for the tables at compile time. No need to run a separate executable and remember to run it before compiling your program.
But this has been discussed many times in this list, and it won't happen, because compile time functions are not jitted and run, they are just interpreted.
You ask for executing a program at compile time. Somebody will ask reading a file at compile time. Another one will ask reading a schema from a database. Yet another will want to do a web scraper at compile time to generate efficient code from that (not sure that's useful :-P)
reading a file at compile time is already possible with string import.