YREA-SLS/CHANGELOG.md

145 lines
3.8 KiB
Markdown

# SLS Changelog
## 0.0.2-alpha
*08 Dec 2025*
- Added Rust Port
- Added Interpreter State Serialization to Rust port
- Added `#load <file>` and `#save <file>` directives to the REPL
- Added Python Port
- Added Calculator app
- Added sls_py.calc module
- Added RP2040 build target for the C implementation
## 0.0.1-alpha
*01 Dec 2025*
- Added executing a file
- Implemented the following builtin operators:
- `for`
- `logb`
- `max`
- `min`
- `rot`
- `const`
- `atan2`
- `roll`
- `while`
- `type_of`
- `eval`
- `lambda`
- `if`
- `pick`
- `dup`
- bitwise `and`
- bitwise `not`
- bitwise `or`
- bitwise `xor`
- boolean `and`
- boolean `not`
- boolean `or`
- `shl`
- `shr`
- comparisons
- `ceil`
- `floor`
- `round`
- `swap`
- `seed`
- `rand`
- `acos`
- `asin`
- `atan`
- `cos`
- `ln`
- `log`
- `sin`
- `sqrt`
- `tan`
- `abs`
- modulus
- exponential
- addition
- subtraction
- multiplication
## SE Checkpoint 3
*28 Nov 2025*
[github.com/SnowSE/final-project-KylerOlsen](https://github.com/SnowSE/final-project-KylerOlsen)
[Compare SE3250-Checkpoint2..SE3250-Checkpoint3](https://github.com/SnowSE/final-project-KylerOlsen/compare/SE3250-Checkpoint2...SE3250-Checkpoint3)
**Report**:
Since checkpoint 2, I completed `token string` parsing and started working on
the REPL. The lexer and REPL are basically finished as much as I am going to do
for this assignment. I did start to implement builtin functions and operators.
Currently only
[`depth`](https://sls.purplecello.org/complete_operator_reference.html#depth),
[`drop`](https://sls.purplecello.org/complete_operator_reference.html#drop), and
[`/`](https://sls.purplecello.org/complete_operator_reference.html#_5)
**Plan**:
By the final turn-in on December 6th, I plan on getting all arithmetic
operations working. And the python and rust ports with help from AI.
**Stuck**:
I'm not really stuck on anything, but I am running out of time, plus I am
worried about not having enough AI usage to do the ports. If I at least get the
main structures of the ports, I hope it will be enough for me to finish.
## SE Checkpoint 2
*20 Nov 2025*
[github.com/SnowSE/final-project-KylerOlsen](https://github.com/SnowSE/final-project-KylerOlsen)
[Compare SE3250-Checkpoint1..SE3250-Checkpoint2](https://github.com/SnowSE/final-project-KylerOlsen/compare/SE3250-Checkpoint1...SE3250-Checkpoint2)
**Report**:
I completed my string type for the interpreter. `floats`, `characters`,
`identifiers`, and `boolean` token lexing has been completed. `integer` tokens
were working at checkpoint 1.
**Plan**:
By checkpoint 3 I plan to complete `token string` token parsing and basic
arithmetic execution.
**Stuck**:
I'm not really stuck on anything, but I have been dropping things from the scope
of this assignment. I do hope to add them when I have time in the future. These
features moved to the backlog include:
- Unicode support
- Exponential literals
- Arrays and array functions
- Type tuples, function defs
- Structs, unions, etc.
## SE Checkpoint 1
*07 Nov 2025*
**intended user**:
Programmers
**detailed functional requirements**:
A stack based language interpreter inspired by RPL, C, Rust, and Uiua
([sls.purplecello.org](https://sls.purplecello.org))
**motivation for wanting to work on the project**:
It is cool, and I have had this idea for a while and learning new languages this
semester has given me more ideas and motivation for this.
**motivation for language selection**:
C is a lower level language that can run on embedded systems and is well suited
for writing language interpreters like Python and Lua.
**non-functional requirements / constraints**:
Efficient enough for use on a modern micro controller
(ie. Raspberry Pi Pico, ESP32)