Depois de instalar o compilador, você terá um binário crystal
à sua disposição.
Nas próximas seções, o sinal de dólar ($
) denota o terminal.
Para compilar e imediatamente rodar um programa, você pode invocar crystal
com um único nome de arquivo:
$ crystal algum_programa.cr
Os arquivos do Crystal terminam com a extensão .cr
.
Alternativamente, você pode usar o comando run
:
$ crystal run algum_programa.cr
Para criar um executável, use o comando build
:
$ crystal build algum_programa.cr
Isso criará um arquivo algum_programa
que você pode executar:
$ ./algum_programa
Observação: por padrão os executáveis gerados não estão completamente otimizados. Para ativar as otimizações, use a flag --release
:
$ crystal build algum_programa.cr --release
Assegure-se de sempre usar --release
para gerar executáveis prontos para produção e para fazer benchmarks.
O motivo para isso é que a performance sem otimização ainda assim é muito boa e possibilita um tempo rápido de compilação, de modo que você pode usar o comando crystal
quase como se fosse um interpretador.
Use o comando init
para criar um projeto Crystal com a estrutura padrão de diretórios.
$ crystal init lib MinhaBibliotecaLegal
create MinhaBibliotecaLegal/.gitignore
create MinhaBibliotecaLegal/LICENSE
create MinhaBibliotecaLegal/README.md
create MinhaBibliotecaLegal/.travis.yml
create MinhaBibliotecaLegal/Projectfile
create MinhaBibliotecaLegal/src/MinhaBibliotecaLegal.cr
create MinhaBibliotecaLegal/src/MinhaBibliotecaLegal/version.cr
create MinhaBibliotecaLegal/spec/spec_helper.cr
create MinhaBibliotecaLegal/spec/MinhaBibliotecaLegal_spec.cr
Initialized empty Git repository in ~/MinhaBibliotecaLegal/.git/
Para ver a lista completa de comandos, invoque crystal
sem argumentos.
$ crystal
Usage: crystal [command] [switches] [program file] [--] [arguments]
Command:
init generate new crystal project
build compile program file
deps install project dependencies
docs generate documentation
eval eval code from args or standard input
run (default) compile and run program file
spec compile and run specs (in spec directory)
tool run a tool
--help, -h show this help
--version, -v show version
Para ver todas as opções disponíveis para um comando em particular, use a flag --help
após um comando:
$ crystal build --help
Usage: crystal build [options] [programfile] [--] [arguments]
Options:
--cross-compile flags cross-compile
-d, --debug Add symbolic debug info
-D FLAG, --define FLAG Define a compile-time flag
--emit [asm|llvm-bc|llvm-ir|obj] Comma separated list of types of output for the compiler to emit
-h, --help Show this message
--ll Dump ll to .crystal directory
--link-flags FLAGS Additional flags to pass to the linker
--mcpu CPU Target specific cpu type
--no-color Disable colored output
--no-codegen Don't do code generation
-o Output filename
--prelude Use given file as prelude
--release Compile in release mode
-s, --stats Enable statistics output
--single-module Generate a single LLVM module
--threads Maximum number of threads to use
--target TRIPLE Target triple
--verbose Display executed commands