86 Commits

Author SHA1 Message Date
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
57f7389c4d Normalize CLI options and help display 2025-01-01 08:34:17 -06:00
3ab9b58194 Rename "compiler" functionality to Evaluator
Allows for stdin input for evaluation when no input file is provided.
2025-01-01 08:23:53 -06:00
bc9064b058 Latest --help in README 2024-12-31 10:09:36 -06:00
d51af676d5 Merge pull request 'Add "SimpleT" t output form' (#9) from feat/new-outputs into main
Reviewed-on: #9
2024-12-31 16:05:38 +00:00
6cec61b98d Merge branch 'main' into feat/new-outputs 2024-12-31 16:04:32 +00:00
4aa8e19ff4 Add "SimpleT" t output form
This new output form allows easy piping to the decode function of the
tricu executable. Includes a new test for roundtrip evaluation of map,
compilation to tree calculus terms, and decoding back to a human
readable string.
2024-12-31 10:00:52 -06:00
13edaa9d5e Merge pull request 'Expands CLI support with output forms and decoding' (#7) from feat/ternary-representation into main
Reviewed-on: #7
2024-12-30 20:24:27 +00:00