Compare commits
4 Commits
03e2f6b93e
...
0.6.0-2e24
Author | SHA1 | Date | |
---|---|---|---|
2e246eb1c8 | |||
ba340ae56f | |||
739851c864 | |||
8995efce15 |
@ -1,13 +1,9 @@
|
|||||||
name: Test and Build
|
name: Test, Build, and Release
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
tags:
|
||||||
- main
|
- '*'
|
||||||
pull_request:
|
|
||||||
types:
|
|
||||||
- opened
|
|
||||||
- synchronize
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
@ -17,8 +13,9 @@ jobs:
|
|||||||
username: ${{ secrets.REGISTRY_USERNAME }}
|
username: ${{ secrets.REGISTRY_USERNAME }}
|
||||||
password: ${{ secrets.REGISTRY_PASSWORD }}
|
password: ${{ secrets.REGISTRY_PASSWORD }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- uses: actions/checkout@v3
|
||||||
uses: actions/checkout@v3
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Set up cache for Cabal
|
- name: Set up cache for Cabal
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
@ -31,16 +28,6 @@ jobs:
|
|||||||
restore-keys: |
|
restore-keys: |
|
||||||
cabal-
|
cabal-
|
||||||
|
|
||||||
- name: Set up cache for Nix
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
/nix/store
|
|
||||||
/nix/var/nix/cache
|
|
||||||
key: nix-${{ hashFiles('flake.lock') }}
|
|
||||||
restore-keys: |
|
|
||||||
nix-
|
|
||||||
|
|
||||||
- name: Initialize Cabal and update package list
|
- name: Initialize Cabal and update package list
|
||||||
run: |
|
run: |
|
||||||
nix develop --command cabal update
|
nix develop --command cabal update
|
||||||
@ -57,32 +44,26 @@ jobs:
|
|||||||
username: ${{ secrets.REGISTRY_USERNAME }}
|
username: ${{ secrets.REGISTRY_USERNAME }}
|
||||||
password: ${{ secrets.REGISTRY_PASSWORD }}
|
password: ${{ secrets.REGISTRY_PASSWORD }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- uses: actions/checkout@v3
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Set up cache for Cabal
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
with:
|
||||||
path: |
|
fetch-depth: 0
|
||||||
~/.cache/cabal
|
|
||||||
~/.config/cabal
|
|
||||||
~/.local/state/cabal
|
|
||||||
key: cabal-${{ hashFiles('tricu.cabal') }}
|
|
||||||
restore-keys: |
|
|
||||||
cabal-
|
|
||||||
|
|
||||||
- name: Set up cache for Nix
|
- name: Build and shrink binary
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
/nix/store
|
|
||||||
/nix/var/nix/cache
|
|
||||||
key: nix-${{ hashFiles('flake.lock') }}
|
|
||||||
restore-keys: |
|
|
||||||
nix-
|
|
||||||
|
|
||||||
- name: Build binary
|
|
||||||
run: |
|
run: |
|
||||||
nix build
|
nix build
|
||||||
ls -alh ./result/bin/tricu
|
cp -L ./result/bin/tricu ./tricu
|
||||||
|
chmod 755 ./tricu
|
||||||
|
nix develop --command upx ./tricu
|
||||||
|
|
||||||
|
- name: Setup go for release action
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '>=1.20.1'
|
||||||
|
|
||||||
|
- name: Release binary
|
||||||
|
uses: https://gitea.com/actions/release-action@main
|
||||||
|
with:
|
||||||
|
files: |-
|
||||||
|
./tricu
|
||||||
|
api_key: '${{ secrets.RELEASE_TOKEN }}'
|
||||||
|
pre_release: true
|
||||||
|
@ -16,7 +16,7 @@ These features move us cleanly out of the [turing tarpit](https://en.wikipedia.o
|
|||||||
|
|
||||||
tricu is the word for "tree" in Lojban: `(x1) is a tree of species/cultivar (x2)`. This project was named "sapling" until I discovered the name is already being used for other (completely unrelated) programming language development projects.
|
tricu is the word for "tree" in Lojban: `(x1) is a tree of species/cultivar (x2)`. This project was named "sapling" until I discovered the name is already being used for other (completely unrelated) programming language development projects.
|
||||||
|
|
||||||
## What does it look like?
|
## REPL examples
|
||||||
|
|
||||||
```
|
```
|
||||||
tricu < -- Anything after `--` on a single line is a comment
|
tricu < -- Anything after `--` on a single line is a comment
|
||||||
@ -31,7 +31,7 @@ tricu < triage = (\a b c : t (t a b) c)
|
|||||||
tricu < test = triage "Leaf" (\z : "Stem") (\a b : "Fork")
|
tricu < test = triage "Leaf" (\z : "Stem") (\a b : "Fork")
|
||||||
tricu < test (t t)
|
tricu < test (t t)
|
||||||
tricu > "Stem"
|
tricu > "Stem"
|
||||||
tricu < -- We can even write a function to convert a term back to source code
|
tricu < -- We can even convert a term back to source code (/demos/toSource.tri)
|
||||||
tricu < toSource not?
|
tricu < toSource not?
|
||||||
tricu > "(t (t (t t) (t t t)) (t t (t t t)))"
|
tricu > "(t (t (t t) (t t t)) (t t (t t t)))"
|
||||||
```
|
```
|
||||||
@ -79,4 +79,4 @@ tricu decode [OPTIONS]
|
|||||||
|
|
||||||
Tree Calculus was discovered by [Barry Jay](https://github.com/barry-jay-personal/blog).
|
Tree Calculus was discovered by [Barry Jay](https://github.com/barry-jay-personal/blog).
|
||||||
|
|
||||||
[treecalcul.us](https://treecalcul.us) is an excellent website with an intuitive playground created by [Johannes Bader](https://johannes-bader.com/) that introduced me to Tree Calculus. If tricu sounds interesting but compiling this repo sounds like a hassle, you should check out his site.
|
[treecalcul.us](https://treecalcul.us) is an excellent website with an intuitive Tree Calculus code playground created by [Johannes Bader](https://johannes-bader.com/) that introduced me to Tree Calculus.
|
||||||
|
@ -32,10 +32,11 @@
|
|||||||
defaultPackage = self.packages.${system}.default;
|
defaultPackage = self.packages.${system}.default;
|
||||||
|
|
||||||
devShells.default = pkgs.mkShell {
|
devShells.default = pkgs.mkShell {
|
||||||
buildInputs = with pkgs.haskellPackages; [
|
buildInputs = with pkgs; [
|
||||||
cabal-install
|
haskellPackages.cabal-install
|
||||||
ghcid
|
haskellPackages.ghcid
|
||||||
customGHC
|
customGHC
|
||||||
|
upx
|
||||||
];
|
];
|
||||||
inputsFrom = builtins.attrValues self.packages.${system};
|
inputsFrom = builtins.attrValues self.packages.${system};
|
||||||
};
|
};
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
cabal-version: 1.12
|
cabal-version: 1.12
|
||||||
|
|
||||||
name: tricu
|
name: tricu
|
||||||
version: 0.6.0
|
version: 0.7.0
|
||||||
description: A micro-language for exploring Tree Calculus
|
description: A micro-language for exploring Tree Calculus
|
||||||
author: James Eversole
|
author: James Eversole
|
||||||
maintainer: james@eversole.co
|
maintainer: james@eversole.co
|
||||||
|
Reference in New Issue
Block a user