Initial commit with readme, script, and hello world
Absolutely minimum viable stuff.
This commit is contained in:
commit
3b5678815f
4 changed files with 214 additions and 0 deletions
102
README.md
Normal file
102
README.md
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
# ziglings
|
||||
|
||||
Welcome to `ziglings`. This project contains a series of incomplete exercises.
|
||||
By completing the exercises, you learn how to read and write
|
||||
[Zig](https://ziglang.org/)
|
||||
code.
|
||||
|
||||
This project was directly inspired by the brilliant and fun
|
||||
[rustlings](https://github.com/rust-lang/rustlings)
|
||||
project for the [Rust](https://www.rust-lang.org/) language.
|
||||
|
||||
## Getting Started
|
||||
|
||||
_Note: This currently uses a shell (Bash) script to automate the "game". A
|
||||
future update may remove this requirement. See TODO below._
|
||||
|
||||
Install the [master release](https://ziglang.org/download/) of the Zig compiler.
|
||||
|
||||
Verify the installation and version of `zig` like so:
|
||||
|
||||
```bash
|
||||
$ zig version
|
||||
0.7.1+<some hexadecimal string>
|
||||
```
|
||||
|
||||
Clone this repository with Git:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/ratfactor/ziglings
|
||||
cd ziglings
|
||||
```
|
||||
|
||||
Then run the `ziglings` script and follow the instructions to begin!
|
||||
|
||||
```bash
|
||||
./ziglings
|
||||
```
|
||||
|
||||
## Manual Usage
|
||||
|
||||
If you can't (or don't want to) use the script, you can manually verify each
|
||||
exercise with the Zig compiler.
|
||||
|
||||
Some exercises need to be "run" (compiled and executed):
|
||||
|
||||
```bash
|
||||
zig run exercises/01_hello.zig
|
||||
```
|
||||
|
||||
Some exercises need to be tested:
|
||||
|
||||
```bash
|
||||
zig test exercises/02_hello_test.zig
|
||||
```
|
||||
|
||||
## TODO
|
||||
|
||||
Contributions are very welcome! I'm writing this to teach myself and to create
|
||||
the learning resource I wished for. There will be tons of room for improvement:
|
||||
|
||||
* Wording of explanations
|
||||
* Idiomatic usage of Zig
|
||||
* Additional exercises
|
||||
* Re-write the `ziglings` script using the Zig build system (???)
|
||||
|
||||
Planned exercises:
|
||||
|
||||
* [x] Hello world
|
||||
* [ ] Hello tests
|
||||
* [ ] Assignment
|
||||
* [ ] Arrays
|
||||
* [ ] If
|
||||
* [ ] While
|
||||
* [ ] For
|
||||
* [ ] Functions
|
||||
* [ ] Defer
|
||||
* [ ] Errors
|
||||
* [ ] Switch
|
||||
* [ ] Runtime safety
|
||||
* [ ] Unreachable
|
||||
* [ ] Pointers
|
||||
* [ ] Pointer sized integers
|
||||
* [ ] Multi pointers
|
||||
* [ ] Slices
|
||||
* [ ] Enums
|
||||
* [ ] Structs
|
||||
* [ ] Unions
|
||||
* [ ] Integer rules
|
||||
* [ ] Floats
|
||||
* [ ] Labelled blocks
|
||||
* [ ] Labelled loops
|
||||
* [ ] Loops as expressions
|
||||
* [ ] Optionals
|
||||
* [ ] Comptime
|
||||
* [ ] Inline loops
|
||||
* [ ] Anonymous structs
|
||||
* [ ] Sentinel termination
|
||||
* [ ] Vectors
|
||||
* [ ] Imports
|
||||
|
||||
The initial topics for these exercises were unabashedly cribbed from
|
||||
[ziglearn.org](https://ziglearn.org/).
|
||||
Loading…
Add table
Add a link
Reference in a new issue