The docs read

@static()

Partially evaluates an expression at parse time.

For example, @static is_windows() ? foo : bar will evaluateis_windows() and 
insert either foo or bar into the expression. This is useful in cases where 
a construct would be invalid on other platforms, such as a ccall to a 
non-existent function.

My understanding at a very top level is that julia code is first parsed, 
macro expanded, then compiled.

Now why is it important for this to be handled at parse time? I don't 
really understand the following `This is useful in cases where a construct 
would be invalid on other platforms, such as a ccall to a non-existent 
function.`

Why couldn't  a simple

` if is_windows(); foo; else; bar; end ` 

 work and why do we need @static?

Reply via email to