diff --git a/.gitignore b/.gitignore index 5b71d4a..c414851 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ !*.sum !*.md !*.txt +!*.svg !.gitignore \ No newline at end of file diff --git a/docs/logo.svg b/docs/logo.svg new file mode 100644 index 0000000..c8775c1 --- /dev/null +++ b/docs/logo.svg @@ -0,0 +1 @@ +fast compilationhigh performancetiny executables \ No newline at end of file diff --git a/docs/readme.md b/docs/readme.md index 35c4f30..6765442 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -1,14 +1,11 @@ -# q +

q logo

-A programming language including compiler, assembler and linker with the following goals: +> [!NOTE] +> `q` is under heavy development and not ready for production yet. +> +> Feel free to [get in touch](https://urbach.dev/contact) if you are interested in helping out. -- Fast compilation -- High performance -- Tiny executables - -## Installation - -Build: +## โšก๏ธ Installation ```shell git clone https://git.urbach.dev/cli/q @@ -16,43 +13,26 @@ cd q go build ``` -Symlink: +To symlink the compiler as `q`: ```shell ln -s $PWD/q ~/.local/bin/q ``` -## Usage - -Build: +## ๐Ÿš€ Usage ```shell q build examples/hello -``` - -Run: - -```shell ./examples/hello/hello ``` -## Tests - -To run all tests: +## ๐Ÿšฆ Tests ```shell go run gotest.tools/gotestsum@latest ``` -Every package must pass its unit tests. - -The code coverage should ideally be around 80-100% for each package. - -Integration tests that test the output of the produced executables are located in the dedicated `tests` directory. - -## Platforms - -### Matrix +## ๐Ÿ’ป Platforms | | arm64 | x86-64 | | ------- | ------ | ------ | @@ -62,22 +42,7 @@ Integration tests that test the output of the produced executables are located i Those marked with a star are supported in theory but there are no developer machines to test them. -### Cross compilation - -Compilation for a different target is supported out of the box: - -```shell -q build examples/hello --os linux -q build examples/hello --os mac -q build examples/hello --os windows -``` - -```shell -q build examples/hello --arch x86 -q build examples/hello --arch arm -``` - -## Security +## โš ๏ธ Security ### PIE @@ -92,16 +57,10 @@ Code and data are separated into different memory pages and loaded with differen | Code | โœ”๏ธ | โœ”๏ธ | โŒ | | Data | โœ”๏ธ | โŒ | โŒ | -## Status - -`q` is under heavy development and not ready for production yet. - -Feel free to [get in touch](https://urbach.dev/contact) if you are interested in helping out. - -## License +## ๐Ÿงพ License Please see the [license documentation](https://urbach.dev/license). -## Copyright +## ๐Ÿง” Copyright ยฉ 2025 Eduard Urbach \ No newline at end of file diff --git a/src/cli/help.txt b/src/cli/help.txt index f34cd8f..f05f366 100644 --- a/src/cli/help.txt +++ b/src/cli/help.txt @@ -5,6 +5,8 @@ Usage: Commands: build [directory | file] build an executable + --arch [arch] cross-compile for ISA: [x86|arm] + --os [os] cross-compile for OS: [linux|mac|windows] --verbose, -v show everything run [directory | file] build and run the executable