When dealing with platform libraries, it is often necessary to provide special cases for various platforms. The variable
Sys.KERNEL can be used to write these special cases. There are several functions intended to make this easier:
is_windows. These may be used as follows:
if is_windows() some_complicated_thing(a) end
is_apple are mutually exclusive subsets of
is_unix. Additionally, there is a macro
@static which makes it possible to use these functions to conditionally hide invalid code, as demonstrated in the following examples.
ccall( (@static is_windows() ? :_fopen : :fopen), ...)
@static if is_linux() some_complicated_thing(a) else some_different_thing(a) end
When chaining conditionals (including if/elseif/end), the
@static must be repeated for each level (parentheses optional, but recommended for readability):
@static is_windows() ? :a : (@static is_apple() ? :b : :c)
© 2009–2016 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.