diff --git a/docs/changes.md b/docs/changes.md index 11f492a..bb280fb 100644 --- a/docs/changes.md +++ b/docs/changes.md @@ -28,4 +28,4 @@ - **2025-08-14**: Memory load and store instructions. - **2025-08-13**: Naive memory allocations. - **2025-08-12**: Support for Windows on arm64. -- **2025-08-11**: Support for Mac on arm64. +- **2025-08-11**: Support for Mac on arm64. \ No newline at end of file diff --git a/docs/faq.md b/docs/faq.md index 09fb17e..9384fdf 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -115,4 +115,4 @@ The implementation will be replaced by a self-hosted compiler in the future. ## How do I pronounce the name? -/ˈkjuː/ just like `Q` in the English alphabet. +/ˈkjuː/ just like `Q` in the English alphabet. \ No newline at end of file diff --git a/docs/motivation.md b/docs/motivation.md index 2bd0e7a..f23634d 100644 --- a/docs/motivation.md +++ b/docs/motivation.md @@ -2,4 +2,4 @@ Q is a programming language under development that aims to fill the gap between C and Go while building upon the safety mechanisms that languages like Austral and Rust have demonstrated. Go's implementation details like the garbage collector make it difficult to be used in latency sensitive environments like kernel or game development and also complicate an efficient foreign function interface. However, the language itself is extremely well-designed when it comes to readability. Programs are written only once but they must be read many more times by developers around the globe and future generations trying to decipher the backbones of our software landscape. I want to combine the simplicity and readability of Go with a more low-level approach to memory safety so that we have a systems programming language that is both safe and efficient but also easy to understand for future readers. -Q is also a code generation framework that aims to produce raw machine code for multiple architectures, similar to LLVM. Since it is still a very young project compared to LLVM's 22 years of development, it will take time to reach a similar level of runtime performance for the generated executables. However, when looking at the compiler efficiency, the benchmarks show that many of the common compilers used in the industry are inefficient and that there is a lot of room for improvement. The Q compiler is currently the fastest optimizing compiler. While there are many optimization passes that still need to be implemented, I am confident that the performance impact of future passes can be reduced to a minimum. This project aims to raise the bar for compiler efficiency and demonstrate the possible improvements. +Q is also a code generation framework that aims to produce raw machine code for multiple architectures, similar to LLVM. Since it is still a very young project compared to LLVM's 22 years of development, it will take time to reach a similar level of runtime performance for the generated executables. However, when looking at the compiler efficiency, the benchmarks show that many of the common compilers used in the industry are inefficient and that there is a lot of room for improvement. The Q compiler is currently the fastest optimizing compiler. While there are many optimization passes that still need to be implemented, I am confident that the performance impact of future passes can be reduced to a minimum. This project aims to raise the bar for compiler efficiency and demonstrate the possible improvements. \ No newline at end of file diff --git a/docs/readme.md b/docs/readme.md index eb5bac2..05855e3 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -14,19 +14,19 @@ ## Features -- High performance (comparable to C and Go) -- Fast compilation (5-10x faster than most compilers) -- Lightweight executables (1 KB for simple programs) -- Static analysis (integrated linter catches common mistakes) -- Pointer safety (pointers cannot be nil) -- Resource safety (use-after-free is a compile error) -- Simple syntax (control flow is easily understood) -- Friendly errors (clear and concise compiler messages) -- General purpose (apps, servers, games, kernels, etc.) -- Multiple architectures (x86-64 and arm64) -- Multiple platforms (Linux, Mac and Windows) -- Readable source (less than 1% of LLVM's code size) -- Zero dependencies (no external tools or libraries) +- 🚄 High performance (comparable to C and Go) +- 🚀 Fast compilation (5-10x faster than most compilers) +- 📦 Lightweight executables (1 KB for simple programs) +- 🔍 Static analysis (integrated linter catches common mistakes) +- 🛡️ Pointer safety (pointers cannot be nil) +- ♻️ Resource safety (use-after-free is a compile error) +- 🧠 Simple syntax (control flow is easily understood) +- 💬 Friendly errors (clear and concise compiler messages) +- 🌐 General purpose (apps, servers, games, kernels, etc.) +- 🧩 Multiple architectures (x86-64 and arm64) +- 🖥️ Multiple platforms (Linux, Mac and Windows) +- 📖 Readable source (less than 1% of LLVM's code size) +- 🧘 Zero dependencies (no external tools or libraries) ## Quickstart @@ -134,8 +134,8 @@ See more in the [examples](../examples) directory. ## Community -- **IRC**: [#q](ircs://irc.urbach.dev:6697/#q) on [irc.urbach.dev](https://irc.urbach.dev) -- **Discord**: [Q community](https://discord.gg/4q3DJFsTvB) +- [IRC](https://irc.urbach.dev/#q) +- [Discord](https://discord.gg/4q3DJFsTvB) ## Donate diff --git a/docs/reference.md b/docs/reference.md index 26a077a..04cafc4 100644 --- a/docs/reference.md +++ b/docs/reference.md @@ -310,4 +310,4 @@ It's important to conceptually realize that one is just a temporary view for edi It is absolutely possible that an editor could offer editing in a Python-like whitespace-significant view. It is also possible to offer visual editing with a node-based system similar to Scratch or Unreal Engine blueprints. -In all cases the code that is saved to disk would still use the standard text-based format. +In all cases the code that is saved to disk would still use the standard text-based format. \ No newline at end of file diff --git a/docs/security.md b/docs/security.md index fb88aa7..e1450c1 100644 --- a/docs/security.md +++ b/docs/security.md @@ -2,7 +2,7 @@ ## Versions -Security updates are provided for the latest development version of this project. +Security updates are provided for the latest development version. Older releases may not receive fixes. ## Reporting diff --git a/docs/source.md b/docs/source.md index 1276a79..ce8b264 100644 --- a/docs/source.md +++ b/docs/source.md @@ -48,4 +48,4 @@ The typical flow for a build command is the following: ## Tools - [Dependency Graph](https://deps-q.urbach.dev/) (gopkgview) -- [Flame Graph](https://prof-q.urbach.dev/ui/flamegraph) (pprof) +- [Flame Graph](https://prof-q.urbach.dev/ui/flamegraph) (pprof) \ No newline at end of file