93 Commits

Author SHA1 Message Date
ad1918aa6f Statically link binaries
Some checks failed
Test, Build, and Release / test (push) Failing after 50s
Test, Build, and Release / build (push) Has been skipped
0.18.0
2025-02-07 18:32:09 -06:00
0a505172b4 Adds several new REPL utilities
Also removes some broken list library functions
2025-02-07 18:25:11 -06:00
e6e18239a7 Smarter decoding of terms
This update includes an update to `decodeResult` that makes string
decoding far less aggressive. This also replaces the `!decode` REPL
command with `!output` to allow users to switch output format on the
fly. New tests are included for verifying decoding behavior; this group
needs to be fleshed out further.
2025-02-07 15:06:25 -06:00
871245b567 Lint cleanup and README updates 2025-02-07 12:37:27 -06:00
30b9505d5f Clearer definition for apply 2025-02-06 08:32:17 -06:00
f4e50353ed Support for list literals in Lambdas
All checks were successful
Test, Build, and Release / test (push) Successful in 1m35s
Test, Build, and Release / build (push) Successful in 1m12s
0.16.0
2025-02-02 12:08:08 -06:00
f9864b8361 REPL namespaces; lib function for pattern matching
All checks were successful
Test, Build, and Release / test (push) Successful in 1m52s
Test, Build, and Release / build (push) Successful in 1m20s
Adds support for REPL namespacing, primarily to avoid `main` collisions.
Also adds a library function for an ergonomic pattern matching function
that I've been noodling on. I might explore ways to make list syntax
less annoying specifically for pattern matching like this.
0.15.0
2025-02-02 10:56:40 -06:00
1a9a4494e0 Caller-relative imports; smart deduping in imports
All checks were successful
Test, Build, and Release / test (push) Successful in 1m35s
Test, Build, and Release / build (push) Successful in 1m13s
0.14.0
2025-01-30 17:56:46 -06:00
a16a24a808 Replace placeholder xor? library function 2025-01-30 17:17:07 -06:00
7d1b6a741d REPL import warning; version info in CLI
All checks were successful
Test, Build, and Release / test (push) Successful in 1m18s
Test, Build, and Release / build (push) Successful in 1m13s
Adds the ability to toggle result decoding in REPL. Adds several more
useful functions to the base library.
0.13.1
2025-01-30 16:33:36 -06:00
bf1000d174 Rework module system
All checks were successful
Test, Build, and Release / test (push) Successful in 1m37s
Test, Build, and Release / build (push) Successful in 1m14s
Don't require/allow naming a module, instead require that the importer
names it. Allow importing into the local scope with the name !Local.
Simplify namespacing logic. Updates all tests to reflect these changes.
0.13.0
2025-01-30 13:56:09 -06:00
09eedfb609 Better handling of interrupts in REPL 2025-01-27 16:46:41 -06:00
c6a7835a6f Don't require available library to run REPL or decoder 2025-01-27 16:28:40 -06:00
20b114fe9b Gracefully ignore no-op redefs 2025-01-27 16:19:59 -06:00
3e07a36444 README typo 2025-01-27 16:07:32 -06:00
4a4b09e898 # Modules
Basic implementation of a module system including tests.
2025-01-27 16:04:04 -06:00
72291c652d Small dependency ordering optimizations 2025-01-26 16:08:34 -06:00
c9d0d04630 # File eval mode now relies on main function
To encourage organizing code in a way that helps in understanding, I
have implemented the common idiom of requiring a `main` function. In
tricu and other functional languages, it is usually placed near the top
of the module. The evaluator gracefully handles the situation of passing
multiple files where the intermediary "library" files do not have main functions.
2025-01-26 15:33:12 -06:00
425489a73f Definition dependency analysis
tricu now allows defining terms in any order and will resolve
dependencies to ensure that they're evaluated in the right order.
Undefined terms are detected and throw errors during dependency
ordering.
For now we can't define top-level mutually recursive terms.
2025-01-26 14:50:39 -06:00
b0b0fb22b9 Allow lambda expressions without explicit paren 2025-01-26 08:52:28 -06:00
6713b05872 Add optimization cases for triage and composition 2025-01-25 15:12:28 -06:00
00cdeca280 Eval optimization! Tests for demos 2025-01-25 09:18:13 -06:00
3175132eec Immutable definitions and documentation updates 2025-01-24 16:14:33 -06:00
88b1c71695 Add size demo 2025-01-23 18:57:59 -06:00
cbf23bc569 Remove Nix caching that can't work due to /nix/store permissions 2025-01-23 17:59:47 -06:00
8b0db2c935 Update README to reflect demo 2025-01-23 17:36:39 -06:00
9dbcde08ca Minify and mark as pre-release 2025-01-23 17:23:02 -06:00
5216cc4e5b Release 0.6.0 2025-01-23 16:44:14 -06:00
10c7cc367d Some special characters in ids; new demos
Adds support for several special characters in identifiers. Adds a demo
for converting values to source code and another for checking equality.
Updates the existing demo and tests to reflect new names for functions
returning booleans.
2025-01-23 15:46:40 -06:00
118062d33c All paths for caching cabal included :) 2025-01-21 17:00:20 -06:00
74bc9a47fc Use runner 0.1.0 2025-01-21 16:49:15 -06:00
08c5b3a74e Update Cabal caching path 2025-01-21 16:48:29 -06:00
3e3e5802fa Drop unreachable cases of updateDepth 2025-01-21 16:16:04 -06:00
83dad2c56b Add more explicit error handling for mismatched groupings 2025-01-21 16:06:10 -06:00
962a100f53 Inline pattern matching in Parser 2025-01-21 14:21:47 -06:00
56f0c2860a CI/CD for tests and builds (broken caching) 2025-01-21 13:29:52 -06:00
aac10d031d Actually readable Level Order Traversal 2025-01-20 20:10:14 -06:00
ec0a6b7b16 Allow multiline expressions 2025-01-20 19:20:29 -06:00
eeaf9e0289 Eliminate redundant eager calls of elimLambda 2025-01-20 16:05:06 -06:00
b385349197 Reduce duplication of elimLambda calls 2025-01-20 15:16:27 -06:00
e6e05b607a General refactor for legibility
Priming to update all source to lhs and document extensively
2025-01-19 14:41:25 -06:00
63aa977efd 0.5.0 release commit 2025-01-06 09:14:04 -06:00
3fec1e0c68 Level Order Traversal demo 2025-01-03 12:00:06 -06:00
66cc5fdd27 Drop parseVarWithoutAssignment
Additionally sorts gitignore and adds attempted decoding of lists back
to the REPL
2025-01-03 10:31:35 -06:00
7d97b85f74 Fix critical list evaluation bug and REPL updates 2025-01-02 19:08:14 -06:00
5523d5acde Use better default output form in evaluator 2025-01-01 19:40:12 -06:00
f478a7d091 Clarify CLI options 2025-01-01 19:32:41 -06:00
03cbadcc54 Support evaluation across multiple source files 2025-01-01 19:27:04 -06:00
8b0b24e7dc Provide "library" via tricu file directly
Allows easier loading of other files and drops the list of Haskell
strings containing the basic tools included
2025-01-01 18:53:56 -06:00
1c8457733e Fixes identifier lexing; support REPL file loading 2025-01-01 18:05:21 -06:00