Guide on how to not only setup an ashen project, but also on how to compile it.
Simple run "ashen init" and the compiler will guide you through project creation (please do so in an empty directory! note that the compiler won't let you make a project in a directory with files...)
No worries, Projects in ashen are just a series of parameters stored in a .ashml file like this:
-o miyuki -I ./source app.ashen
If you just want to compile one file,
ashen build main.ashen -o myprogram # Or make a ashml file for it echo "-o hello -I src src/main.ashen" > project.ashml ashen build project.ashml
So, you can either hand write the parameters line by line in an .ashml file and pass it to the compiler (like this: ashen build project.ashml)
...or pass them individually!
WITCH WARNING:Heads up: Ashen main procedures are defined with a @Export rune and a args String[] parameter, like this: @Export proc main(args : String[]) {...
ashen build -o miyuki -I ./source app.ashen
By the way, you can always pass both build.ashml and extra parameters, just make sure to place them in order of priority of least required to most required (if using a parameter like -o, dont pass -o before your build.ashml as the -o on your ashml file will overwrite the one you wrote before it)
--no-nebulosa or --no-builtin -- Disables libnebula, but you will also be unable to use Ashen Arrays, and anything that rely on them. --freestanding -- Will not compile against the systems libc and the ashen standard library will not be available. --gen-<flag> -- Parameter to pass to the generator, currently, the only generator is C code, so this will be either a clang or gcc parameter after --gen-. --link-<flag> -- Parameter to pass to the linker -I <path> -- Adds an import path -o <out> -- Specifies an output executable name --dump-ast -- Dumps the AST of your project into a file named "bootstrap-ast"