9 releases (5 breaking)
0.6.0 | Sep 8, 2019 |
---|---|
0.5.1 | Sep 2, 2019 |
0.4.2 | Aug 25, 2019 |
0.3.0 | Aug 17, 2019 |
0.1.0 | Aug 7, 2019 |
#3 in #domain-specific
26 downloads per month
69KB
2K
SLoC
Yolk
Numerical computing for Yolol.
What • Why • How • Development • License • Contribution • Credits
Warning: Yolk is currently in development. Things may change at any time!
What is Yolk?
Yolk is a domain-specific language that transpiles to Yolol.
// Calculate dot products
define dot(V, W) = sum(V * W)
let foo = dot([1, 2], [3, 4])
// Result: foo == 11
Yolk specializes in working with numbers and arrays. It doesn't support strings, conditionals, or gotos.
Why should I use Yolk?
- Minimal syntax: has the same operators and precedence as Yolol
- Interoperable design: easy to integrate with your existing Yolol
- Aggressive optimization: saves space on your Yolol chips
How do I get started?
Learn the Yolk syntax by checking out some examples or by reading the language specification.
Try Yolk online with Yolk Web.
Development
Requires Git and Rust nightly.
# Set nightly as default
rustup default nightly
# Clone the repository
git clone https://github.com/averycrespi/yolk.git && cd yolk
# Build and run tests
make
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Credits
Logo derived from: Egg by David from the Noun Project
Dependencies
~5.5–8MB
~142K SLoC