update readme file

This commit is contained in:
2025-01-17 21:16:03 -08:00
parent 8e8e6bce7e
commit cecb1d73c1

View File

@@ -3,20 +3,23 @@
Newt is a dependently typed programming language that compiles to javascript. It is Newt is a dependently typed programming language that compiles to javascript. It is
my first attempt to write a dependent typed language. It is inspired by Idris, my first attempt to write a dependent typed language. It is inspired by Idris,
Elaboration Zoo, pi-forall, and various tutorials. Elaboration Zoo, pi-forall, and other tutorials.
I'm still learning how this stuff is done, so it's a bit of a mess. But I'm going to It has inductive types, dependent pattern matching, a typeclass-like mechanism, compiles
work with the garage door up. to javascript, and is self hosted. There is a browser playground and vscode extension.
The goal is to have inductive types, pattern matching, compile to javascript, and be The web playground can be at https://dunhamsteve.github.io/newt. The top left corner
self hosted. Ideally I could build a little browser "playground" to compile, view has a dropdown with some samples. Currently the web playground is using the Idris-built
output, and run code. version of newt because most browsers lack tail call optimization.
The repository is tagging `.newt` files as Agda to convince github to highlight them. The directory `port` contains a port of newt to itself. Currently it needs to be run by `bun` rather than `node` because `newt` does not do any transformations for TCO and JavaScriptCore is the only javascript implementation that does TCO.
There is a web playground at https://dunhamsteve.github.io/newt. The top left corner ## Sample code
has a dropdown with some samples. At the moment, it shows generated code, but doesn't
execute it. - `port` contains a copy of newt written in newt
- `newt` contains miscellaneous files
- `aoc2024` contains solutions for 2024 Advent of Code in newt
- `tests` contains some test cases.
## Building ## Building
@@ -30,6 +33,8 @@ The web playground is in playground.
- `./build` will build the web workers and install sample files (`make` must be run in root first). - `./build` will build the web workers and install sample files (`make` must be run in root first).
- `npx vite` will run the dev server. - `npx vite` will run the dev server.
# Implementation details
## Overview ## Overview
I'm doing Type in Type for now. I'm doing Type in Type for now.