81 Commits

Author SHA1 Message Date
James Eversole
33c2119708 Don't require available library to run REPL or decoder
All checks were successful
Test, Build, and Release / test (push) Successful in 1m11s
Test, Build, and Release / build (push) Successful in 1m12s
0.12.0-hotfixes
2025-01-27 16:28:40 -06:00
James Eversole
3b833ca75b Gracefully ignore no-op redefs
All checks were successful
Test, Build, and Release / test (push) Successful in 1m11s
Test, Build, and Release / build (push) Successful in 1m14s
2025-01-27 16:19:59 -06:00
James Eversole
203bc1898d README typo 2025-01-27 16:07:32 -06:00
James Eversole
87aed72ab2 # Modules
All checks were successful
Test, Build, and Release / test (push) Successful in 1m43s
Test, Build, and Release / build (push) Successful in 1m16s
Basic implementation of a module system including tests.
0.12.0
2025-01-27 16:04:04 -06:00
James Eversole
f71f88dce3 Small dependency ordering optimizations 2025-01-26 16:08:34 -06:00
James Eversole
918d929c09 # File eval mode now relies on main function
All checks were successful
Test, Build, and Release / test (push) Successful in 1m26s
Test, Build, and Release / build (push) Successful in 1m15s
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.
0.11.0
2025-01-26 15:33:12 -06:00
James Eversole
a64b3f0829 Definition dependency analysis
All checks were successful
Test, Build, and Release / test (push) Successful in 1m34s
Test, Build, and Release / build (push) Successful in 1m21s
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.
0.10.0
2025-01-26 14:50:39 -06:00
James Eversole
e2621bc09d Allow lambda expressions without explicit paren
All checks were successful
Test, Build, and Release / test (push) Successful in 1m41s
Test, Build, and Release / build (push) Successful in 1m19s
0.9.0
2025-01-26 08:52:28 -06:00
James Eversole
ea128929da Add optimization cases for triage and composition 2025-01-25 15:12:28 -06:00
James Eversole
2bd388c871 Eval optimization! Tests for demos
All checks were successful
Test, Build, and Release / test (push) Successful in 1m30s
Test, Build, and Release / build (push) Successful in 1m26s
0.8.0
2025-01-25 09:18:13 -06:00
James Eversole
1f5a910fb2 Immutable definitions and documentation updates
All checks were successful
Test, Build, and Release / test (push) Successful in 1m22s
Test, Build, and Release / build (push) Successful in 1m23s
0.7.0
2025-01-24 16:14:33 -06:00
James Eversole
8b043911ca Add size demo 2025-01-23 18:57:59 -06:00
James Eversole
2e246eb1c8 Remove Nix caching that can't work due to /nix/store permissions
All checks were successful
Test, Build, and Release / test (push) Successful in 1m13s
Test, Build, and Release / build (push) Successful in 1m23s
0.6.0-2e246eb1c8
2025-01-23 17:59:47 -06:00
James Eversole
ba340ae56f Update README to reflect demo
Some checks failed
Test, Build, and Release / build (push) Has been cancelled
Test, Build, and Release / test (push) Has been cancelled
2025-01-23 17:36:39 -06:00
James Eversole
739851c864 Minify and mark as pre-release
Some checks failed
Test, Build, and Release / test (push) Successful in 1m59s
Test, Build, and Release / build (push) Failing after 2m12s
2025-01-23 17:23:02 -06:00
James Eversole
8995efce15 Release 0.6.0
All checks were successful
Test, Build, and Release / test (push) Successful in 1m38s
Test, Build, and Release / build (push) Successful in 1m40s
0.6.0-8995efce15
2025-01-23 16:44:14 -06:00
James Eversole
03e2f6b93e Some special characters in ids; new demos
All checks were successful
Test and Build / test (push) Successful in 4m39s
Test and Build / build (push) Successful in 1m44s
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
James Eversole
419d66b4d1 All paths for caching cabal included :)
All checks were successful
Test and Build / test (push) Successful in 4m36s
Test and Build / build (push) Successful in 1m41s
2025-01-21 17:00:20 -06:00
James Eversole
4b98afd803 Use runner 0.1.0
All checks were successful
Test and Build / test (push) Successful in 2m52s
Test and Build / build (push) Successful in 1m42s
2025-01-21 16:49:15 -06:00
James Eversole
0768e11a02 Update Cabal caching path
Some checks failed
Test and Build / build (push) Has been cancelled
Test and Build / test (push) Has been cancelled
2025-01-21 16:48:29 -06:00
James Eversole
42fce0ae43 Drop unreachable cases of updateDepth
All checks were successful
Test and Build / test (push) Successful in 2m27s
Test and Build / build (push) Successful in 1m39s
2025-01-21 16:16:04 -06:00
James Eversole
51b1eb070f Add more explicit error handling for mismatched groupings 2025-01-21 16:06:10 -06:00
James Eversole
c2e5a8985a Inline pattern matching in Parser 2025-01-21 14:21:47 -06:00
James Eversole
9d7e4daa41 CI/CD for tests and builds (broken caching)
All checks were successful
Test and Build / test (push) Successful in 2m35s
Test and Build / build (push) Successful in 1m39s
2025-01-21 13:29:52 -06:00
James Eversole
edde0a80c9 Actually readable Level Order Traversal 2025-01-20 20:10:14 -06:00
James Eversole
35163a5d54 Allow multiline expressions 2025-01-20 19:20:29 -06:00
James Eversole
ca7f09e2ac Eliminate redundant eager calls of elimLambda 2025-01-20 16:05:06 -06:00
James Eversole
82e29440b0 Reduce duplication of elimLambda calls 2025-01-20 15:16:27 -06:00
James Eversole
ad02c8b86a General refactor for legibility
Priming to update all source to lhs and document extensively
2025-01-19 14:41:25 -06:00
James Eversole
a3282b794f 0.5.0 release commit 0.5.0 2025-01-06 09:14:04 -06:00
James Eversole
7b9a62462c Level Order Traversal demo 2025-01-03 12:00:06 -06:00
James Eversole
3eb28a2c62 Drop parseVarWithoutAssignment
Additionally sorts gitignore and adds attempted decoding of lists back
to the REPL
2025-01-03 10:31:35 -06:00
James Eversole
8c33e5ce66 Fix critical list evaluation bug and REPL updates 2025-01-02 19:08:14 -06:00
James Eversole
76487b15f9 Use better default output form in evaluator 2025-01-01 19:40:12 -06:00
James Eversole
18ff2d2e04 Clarify CLI options 2025-01-01 19:32:41 -06:00
James Eversole
fff29199d1 Support evaluation across multiple source files 2025-01-01 19:27:04 -06:00
James Eversole
a2c459b148 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
James Eversole
39be66a4d1 Fixes identifier lexing; support REPL file loading 2025-01-01 18:05:21 -06:00
James Eversole
bf58c9afbd Normalize CLI options and help display 2025-01-01 08:34:17 -06:00
James Eversole
7d38d99dcd 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
James Eversole
458d3c3b10 Latest --help in README 2024-12-31 10:09:36 -06:00
0048fed6b4 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
476c3912a4 Merge branch 'main' into feat/new-outputs 2024-12-31 16:04:32 +00:00
James Eversole
493ef51a6a 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
e22ff06bfe 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
James Eversole
5e2a4dff50 Expands CLI support with output forms and decoding
Adds CLI options for compiling to a Tree Calculus, AST, Ternary, and
ASCII tree view. Adds CLI command for attempted decoding of a compiled
result to Number/String/List.
2024-12-30 14:22:37 -06:00
James Eversole
8622af9ad2 Initial ternary representation options
Both parsing and conversion from T to ternary representation supported
2024-12-30 08:30:40 -06:00
fe70aa72ac Merge pull request 'Adds "compiler" and CLI argument handling' (#3) from feature/compiler-CLI into main
Reviewed-on: #3
2024-12-30 03:51:59 +00:00
James Eversole
2abeab9c04 Adds "compiler" and CLI argument handling 2024-12-29 21:49:57 -06:00
James Eversole
467e11edb3 Updates to tests
Uncomments a test for comment parsing behavior and removes a test for
incomplete function definitions.
2024-12-29 21:09:02 -06:00