mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-15 14:54:07 +10:00
This wasn't an easy fix, as it was primarily the test pipelines that were failing. I resorted to using forced pushes to run the CI, to try and track down the problems. The primary cause seems to be the differences in how each supported platform handles file paths, specifically, slash vs. backslash. I've also added gdb scripts to set up automated breakpoints, and to run operations on them to check for issues - the 'gdb_init' files are mostly empty for the time being. commit a34b0ff5d407bbe7d70ff9504aa035ec6fbecb7c Author: Kayne Ruse <kayneruse@gmail.com> Date: Fri Oct 18 11:45:40 2024 +1100 Restored the workflows commit eb3d94f30d4dc4150139517f44cc874f2901124f Author: Kayne Ruse <kayneruse@gmail.com> Date: Fri Oct 18 11:35:39 2024 +1100 I think the library path on macos is fixed commit 964572b5e93c7cb464686f19ddbe3e9d315f391b Author: Kayne Ruse <kayneruse@gmail.com> Date: Fri Oct 18 11:22:56 2024 +1100 I think the file paths are fixed commit 1721f3da7252b4063f4347926e800ef4f7c9bf4c Author: Kayne Ruse <kayneruse@gmail.com> Date: Thu Oct 17 15:57:28 2024 +1100 Added standalone tests commit 90c783f4059d88f4a7bbaf18215a9b414f3ab66f Author: Kayne Ruse <kayneruse@gmail.com> Date: Thu Oct 17 15:01:18 2024 +1100 Trying to fix the integration test pipeline commit fccced1396568a55c1385e2f1b04fedf7c2585a5 Author: Kayne Ruse <kayneruse@gmail.com> Date: Wed Oct 16 00:31:39 2024 +1100 Workflow integration tests are not passing commit 6b1e0d1e0f89291e89768bf6102f4f7ed4581496 Author: Kayne Ruse <kayneruse@gmail.com> Date: Tue Oct 15 20:07:20 2024 +1100 Fixed file paths in workflow commit c0f1ec78fe79a5abb34c3e05308236cb18c23b97 Author: Kayne Ruse <kayneruse@gmail.com> Date: Tue Oct 15 19:46:14 2024 +1100 Moved example scripts into proper integration tests Also adjusted makefiles to allow easy invoking of the tests. Adjusted and updated CI to invoke tests correctly. Fixed #141
70 lines
2.2 KiB
Markdown
70 lines
2.2 KiB
Markdown
*For the feature complete version 1, [click here](https://github.com/Ratstail91/Toy/tree/v1).*
|
||
|
||
<p align="center">
|
||
<image src="toylogo.png" />
|
||
</p>
|
||
|
||
# Toy v2.x
|
||
|
||
The Toy programming language is an imperative, bytecode-interpreted, embeddable scripting language. Rather than functioning independently, it serves as part of another program, the "host". This design allows for straightforward customization by both the host’s developer and end users, achieved by exposing program logic through text files.
|
||
|
||
This repository holds the reference implementation for Toy version 2.x, written in C.
|
||
|
||
# Nifty Features
|
||
|
||
* Simple C-like syntax
|
||
* Intermediate AST representation
|
||
* Strong, but optional type system
|
||
* First-class functions and types
|
||
* Extensible via external libraries
|
||
* Can re-direct output, error and assertion failure messages
|
||
* Open source under the zlib license
|
||
|
||
# Syntax
|
||
|
||
```toy
|
||
//print is a built-in keyword, that can handle complex expressions
|
||
print 6 * 7;
|
||
|
||
//strings can be concatenated with the .. operator
|
||
print "Hello" .. "world!";
|
||
|
||
//declare a variable
|
||
var foobar = 42;
|
||
|
||
//more examples to be added as the features are implemented
|
||
```
|
||
|
||
# Building
|
||
|
||
Supported platforms are: `linux-latest`, `windows-latest`, `macos-latest`, using [GitHub's standard runners](https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories).
|
||
|
||
To build the shared library, run `make source`.
|
||
To build the shared library and repl, run `make repl`.
|
||
To build and run the standard available tests, run `make tests`.
|
||
|
||
# Tools
|
||
|
||
*Coming Soon, see #126 for details.*
|
||
|
||
# License
|
||
|
||
This source code is covered by the zlib license (see [LICENSE.md](LICENSE.md)).
|
||
|
||
# Contributors and Special Thanks
|
||
|
||
For a guide on how you can contribute, see [CONTRIBUTING.md](CONTRIBUTING.md).
|
||
|
||
@8051Enthusiast - `fixAlignment()` trick
|
||
@hiperiondev - v1 Disassembler, v1 porting support and feedback
|
||
@add00 - v1 Library support
|
||
@gruelingpine185 - Unofficial v1 MacOS support
|
||
@solar-mist - v1 Minor bugfixes
|
||
The Ratbags - Feedback
|
||
@munificent - For [writing the book](http://craftinginterpreters.com/) that sparked my interest in langdev
|
||
|
||
# Patreon Supporters
|
||
|
||
* Seth A. Robinson
|
||
|