Commit Graph

595 Commits

Author SHA1 Message Date
Nicolas Abril
45447b4d51 [sc-403] Change pat-match algorithm, add multi-arg matches 2024-02-22 20:38:00 +01:00
LunaAmora
79ee00125e Fix parser hanging with large generated file 2024-02-22 15:38:14 -03:00
LunaAmora
2667e58b17 Add cargo.lock, remove unused snap 2024-02-22 15:15:19 -03:00
FranchuFranchu
f51e4eb22e Make hvm lang compatible with ptr refactor [sc-362]
Add `HVM.log` and `HVM.black_box`, together with their documentation.

Add basic CLI support for limiting rewrites.

Trimming names and adapting them for hvm-core is not necessary anymore.

Update `pre_reduce`. `pre_reduce` can now reduce unrelated redexes in defs that use builtin defs. This is done by making builtin defs "inert" on pre-reduction, and then adding back their interactions to the reduced net. `pre_reduce_refs` is redundant now and has been removed.

Make `Ctx` and `compile_book` take a mutable borrow of `Book`.

Sister PR: https://github.com/HigherOrderCO/hvm-core/pull/60
2024-02-22 15:00:29 -03:00
imaqtkatt
23d12f8ca6 Add used_once_names test 2024-02-22 10:36:04 -03:00
imaqtkatt
a264cd16bb Change dup name when is used once 2024-02-22 10:31:44 -03:00
Luna
068d25fe10
Merge pull request #197 from HigherOrderCO/chore/sc-450/refactor-error-handling-to-handle-multiple
[sc-450] Refactor error handling
2024-02-21 14:12:53 -03:00
LunaAmora
e69a2c2a79 Add '.' to the end of all errors 2024-02-21 11:59:22 -03:00
LunaAmora
6210455866 Improve ExhaustivenessErr limit hint 2024-02-21 11:40:42 -03:00
LunaAmora
71c4a4e4ec Add limit for exhaustiveness errors, and use verbose flag to remove it 2024-02-21 10:54:13 -03:00
LunaAmora
589d47a5db Merge errors from the same definition 2024-02-21 09:46:03 -03:00
imaqtkatt
9a03279a0c Update str_backtick test 2024-02-21 09:30:16 -03:00
imaqtkatt
7c2a2be24a Add string backtick support 2024-02-21 09:07:14 -03:00
LunaAmora
2171a3ae6d Fix linearize with erased patterns let 2024-02-20 17:01:00 -03:00
LunaAmora
5f5467109f Improve API to return Info instead of String as the error type 2024-02-20 14:39:10 -03:00
LunaAmora
3846d7c75f Improve entrypoint related functions to use the book.entrypoint field 2024-02-20 12:50:10 -03:00
LunaAmora
b41abe8edb Refactor error handling 2024-02-20 10:30:40 -03:00
imaqtkatt
a24772f6f4
Merge pull request #196 from HigherOrderCO/chore/sc-446/separate-the-different-match-expression-transformations
[sc-446] Separate the different match expression transformations
2024-02-20 10:04:50 -03:00
imaqtkatt
d1d874489f Refactor cleanup and update tests 2024-02-19 15:55:52 -03:00
LunaAmora
fe057eab51 Refactor var-use counting when linearizing 2024-02-16 15:31:46 -03:00
LunaAmora
7dc78cac6f Remove Missing Parenthesis parser error 2024-02-16 10:06:50 -03:00
LunaAmora
0776b48781 Revert to using soft_keyword instead of Token::Data 2024-02-16 09:29:03 -03:00
LunaAmora
cfd6e10888 Parser adjustments to accept Data as non-top-level names 2024-02-15 14:48:02 -03:00
LunaAmora
c56693eb23 Fix some parser error diagnostics 2024-02-15 11:54:38 -03:00
imaqtkatt
a9d1d22f3b Add id_undescore test 2024-02-14 08:37:02 -03:00
imaqtkatt
727ad370c9 Fix nam token priority 2024-02-14 08:22:58 -03:00
Nicolas Abril
b2e6d0410e Change Name into Arc<str> 2024-02-13 14:50:30 +01:00
Nicolas Abril
222637ab71 [sc-443] Rename builtin constructors 2024-02-12 18:09:40 +01:00
Nicolas Abril
33344c69db
Merge pull request #189 from HigherOrderCO/chore/sc-440/update-rust-toolchain-version-for-hvml
[sc-440] Update rust toolchain, solve new deprecation warnings
2024-02-12 18:07:29 +01:00
Nicolas Abril
343c38d5ae [sc-440] Apply new clippy lints 2024-02-12 15:23:13 +01:00
imaqtkatt
a57343f85f Refactor rename old match field occurrences 2024-02-12 10:50:21 -03:00
Nicolas Abril
89471c2032 [sc-438] Simplify user vs builtin logic 2024-02-09 18:08:35 +01:00
Nicolas Abril
daf34d3784 [sc-437] Implement fmt::Display for more things 2024-02-09 14:58:18 +01:00
Nicolas Abril
25a6926ab1 [sc-436] Separate adt and builtin resugaring into separate passes 2024-02-09 13:04:45 +01:00
Nicolas Abril
3e9b3d7e58 [sc-410] Add untagged scott encoding option for ADTs 2024-02-09 12:50:59 +01:00
imaqtkatt
e32af0e447 Add tests for custom entrypoint 2024-02-08 16:14:46 -03:00
imaqtkatt
7a38b42645 Add custom entrypoint option 2024-02-08 15:32:04 -03:00
imaqtkatt
999b3d789a Update tests snapshots 2024-02-07 14:02:41 -03:00
imaqtkatt
0ff494397e Move long_name test to compile_file 2024-02-07 13:58:22 -03:00
imaqtkatt
483388d495 Change inline criteria to only small nodes 2024-02-07 13:58:22 -03:00
imaqtkatt
c8ab1b31f6 Minor adjustments and update tests snapshots 2024-02-07 13:55:18 -03:00
Nicolas Abril
b8c25e50df [sc-407] Refactor how names are stored and defs are referenced 2024-02-07 15:52:38 +01:00
LunaAmora
05651707ef Fix escaped char inside strings literals 2024-02-06 08:27:30 -03:00
Luna
422876c503
Merge pull request #176 from HigherOrderCO/feature/sc-433/fix-unreachable-on-invalid-op2-op2-interaction
[sc-433] Add Term::Invalid for invalid readbacks
2024-02-05 14:54:46 -03:00
imaqtkatt
9b7719d7f0 Dont desugar snil in errors 2024-02-05 14:43:27 -03:00
LunaAmora
a492a7f683 Update Term default , update tests 2024-02-05 14:15:53 -03:00
LunaAmora
0bcabe93bc Add Term::Invalid for invalid readbacks 2024-02-05 12:53:27 -03:00
imaqtkatt
38b479d731 Implement simpler resugar for string and list 2024-02-05 11:52:29 -03:00
imaqtkatt
0a00d27144 Fix list app resugar 2024-02-05 08:12:42 -03:00
LunaAmora
6a500bcf1e Revert unlabeled dups/sups being 0 2024-02-02 19:11:20 -03:00
Nicolas Abril
212d1b69e2 [sc-389] Fix flattening with era and num patterns 2024-02-02 20:37:12 +01:00
Nicolas Abril
c8dd3fd5fd [sc-403] Fix rebase and update tests 2024-02-02 20:35:54 +01:00
Nicolas Abril
4800367ddc [sc-389] Fix incorrect unreachable in rule flattening 2024-02-02 20:35:54 +01:00
Nicolas Abril
211ba7d098
Merge pull request #173 from HigherOrderCO/bug/sc-428/constructor-arity-is-not-checked-in-patterns
[sc-428] Constructor arity is not checked in patterns
2024-02-02 20:30:42 +01:00
imaqtkatt
9d382aca54 Update constructor arity error message 2024-02-02 16:19:50 -03:00
imaqtkatt
af732179b8 Add constructor as var name arity test 2024-02-02 16:12:14 -03:00
imaqtkatt
5e858f6024 Add arity check for constructor patterns 2024-02-02 15:51:36 -03:00
LunaAmora
041bec6535 Fix some naming and improve code 2024-02-02 15:36:26 -03:00
LunaAmora
51dcee3fbd Add lazy mode tests, update normal tests 2024-02-02 13:44:06 -03:00
LunaAmora
9c3aa73b75 Fix sup/dup behavior when not using lazy mode 2024-02-02 13:43:14 -03:00
LunaAmora
9be542b0c2 Improve lazy mode diagnostics and usability with the rebase
And update tests
2024-02-02 10:59:44 -03:00
LunaAmora
8771b9ae0e Re-add unlabeled sup/dup compiling to tag 0 2024-02-02 10:58:46 -03:00
LunaAmora
d0480aa1be Fix dup tree var names on linearization pass 2024-02-01 21:49:46 -03:00
imaqtkatt
113ce9738b
Merge pull request #168 from HigherOrderCO/feature/sc-419/show-code-highlight-and-location-on-parse
[sc-419] Show code highlight and location on parse error
2024-02-01 16:21:57 -03:00
LunaAmora
eb96960ae9 Add recursive merge test 2024-02-01 12:29:24 -03:00
LunaAmora
cef06bf71d Fix order of the merge_definitions pass 2024-02-01 12:12:03 -03:00
LunaAmora
27fd28ecd8 Add merge pass to encode_pattern_match golden tests 2024-02-01 11:18:38 -03:00
imaqtkatt
29177fa52d Fix extra slash at end of path 2024-01-31 14:45:58 -03:00
imaqtkatt
6e93dbc316 Add location and highlight on parser errors 2024-01-31 13:50:10 -03:00
LunaAmora
24f64d4c15 Fix merge_definitions stack overflow 2024-01-31 12:57:55 -03:00
LunaAmora
a1a90486c5 Add merge definitions pass 2024-01-31 10:17:10 -03:00
imaqtkatt
1b932afeba
Merge pull request #164 from HigherOrderCO/feature/sc-420/accept-in-variable-names
[sc-420] Accept `-` in variable names
2024-01-31 10:07:28 -03:00
LunaAmora
0a618244c2 Refactor built-ins pruning, update tests 2024-01-31 09:03:42 -03:00
LunaAmora
7208db49fe Refactor builtins adts 2024-01-31 09:03:42 -03:00
LunaAmora
c03d54f1b5 Fix and update tests because of recent pr merges 2024-01-30 15:36:45 -03:00
imaqtkatt
4409cf0a60 Allow hyphen in variable names 2024-01-30 15:06:21 -03:00
Nicolas Abril
958dec51cc
Merge pull request #162 from HigherOrderCO/feature/sc-415/improve-skip-warnings-cli-flag
[sc-415] Improve skip_warnings cli flag
2024-01-30 18:21:54 +01:00
imaqtkatt
a87e2ed8fb Swap hang test results 2024-01-30 12:30:23 -03:00
imaqtkatt
ce885a29fd Add test for hangs directory 2024-01-30 11:57:03 -03:00
imaqtkatt
02435adf44 Refactor warnings 2024-01-30 09:08:06 -03:00
imaqtkatt
4761aabe2e Add cli warnings option 2024-01-29 16:29:39 -03:00
imaqtkatt
54b9d580f9 Add pattern names to ref resolution scope 2024-01-29 08:54:41 -03:00
imaqtkatt
912e20f79f Refactor encoding, add more builtin tests 2024-01-28 15:54:01 -03:00
imaqtkatt
114e971352 Fix used builtin logic 2024-01-28 15:53:39 -03:00
LunaAmora
f3c6431912 Fix function name change and apply cargo fmt 2024-01-27 01:34:20 -03:00
Luna
22a4fb8e06
Merge pull request #151 from HigherOrderCO/chore/sc-400/refactor-adt-resugaring-in-readback
[sc-400] Refactor adt resugaring in readback
2024-01-27 01:20:01 -03:00
LunaAmora
02b5705549 Fix readback of adts and adts matches with wrong tags, improve docs 2024-01-26 17:58:21 -03:00
Nicolas Abril
70ee56860a
Merge pull request #155 from HigherOrderCO/bug/sc-409/unused-unscoped-lambda-in-match-arm-shows
[sc-409] Unused unscoped lambda in match arm shows wrong error
2024-01-26 21:44:42 +01:00
imaqtkatt
cc3dd6d71f Fix unused unscoped lambda error 2024-01-26 16:00:54 -03:00
imaqtkatt
7751430b15 Remove warning on generated functions 2024-01-26 08:09:08 -03:00
imaqtkatt
dad6c8295a Implement unused definition warning
To keep consistency in tests I got to use index based hashing
2024-01-25 17:17:53 -03:00
LunaAmora
a44285702d Refactor net_to_term structure 2024-01-25 12:05:48 -03:00
LunaAmora
0ea97ba87d Simplify and fix resugar_string & resugar_list
Fixes nested mixed adts
Fixes list with vars
2024-01-25 12:05:27 -03:00
Nicolas Abril
074f043e69
Merge pull request #150 from HigherOrderCO/bug/sc-404/fix-string-list-removal-when-only-declared
[sc-404] Fix string/list removal when only declared on match arms
2024-01-25 15:26:08 +01:00
imaqtkatt
0ff4681dd8
Merge pull request #149 from HigherOrderCO/bug/sc-397/should-not-allow-for-str-and-list-ctr-names
[sc-397] Should not allow for str and list Ctr names to be used
2024-01-25 09:30:32 -03:00
imaqtkatt
b75aaead7e Fix typos 2024-01-25 09:16:58 -03:00
LunaAmora
bf07d22654 Fix encode_str & encode_list to look inside match arms patterns 2024-01-24 20:45:47 -03:00
Nicolas Abril
4abe695a5e
Merge pull request #148 from HigherOrderCO/fix-linearization-unscoped
Fix linearization of unscoped vars in adt matches
2024-01-24 21:31:28 +01:00
imaqtkatt
898440d025 Fix test constructor name 2024-01-24 16:47:30 -03:00
imaqtkatt
fa8cdc3941 Add abstraction over builtin adts 2024-01-24 16:47:30 -03:00
Luna
2c15e2c4bf
Merge pull request #147 from HigherOrderCO/feature/sc-323/make-compilation-passes-not-as-conservative
[sc-323] Make compilation passes not as conservative
2024-01-24 16:42:38 -03:00
Nicolas Abril
8f780f1b28 Fix linearization of unscoped vars in adt matches 2024-01-24 19:26:38 +01:00
imaqtkatt
09c5da06dd Fix string result in readback error 2024-01-24 14:40:09 -03:00
LunaAmora
a0db2e5078 Fix check_unbound_vars errors 2024-01-24 14:19:20 -03:00
imaqtkatt
312c3c54b2 Refactor readback display 2024-01-24 14:09:11 -03:00
imaqtkatt
08cd61c069 Implement display logic for readback errors 2024-01-24 11:38:43 -03:00
LunaAmora
59268318fa Implement eta_reduction for uncoped terms 2024-01-24 11:01:00 -03:00
LunaAmora
fb78de9b3b Update unscoped vars errors 2024-01-24 11:00:15 -03:00
Luna
9cd2bac3d0
Merge pull request #142 from HigherOrderCO/bug/sc-387/string-readback-bug
[sc-387] String readback bug
2024-01-24 09:48:05 -03:00
Luna
4607a7e8c6
Merge pull request #140 from HigherOrderCO/bug/sc-340/wrong-intermediate-net-wrong-linearization
[sc-340] Fix unused dup var linearization
2024-01-24 09:45:34 -03:00
Nicolas Abril
abf592f034 [sc-396] Print line num on parse err and only first reason 2024-01-23 22:03:23 +01:00
Nicolas Abril
ff6ed46df3
Merge pull request #144 from HigherOrderCO/feature/sc-395/add-match-with-bind-syntax
[sc-395] Add match with bind syntax
2024-01-23 22:02:16 +01:00
imaqtkatt
646269d998 Update match syntax doc and change match bind test 2024-01-23 16:43:21 -03:00
LunaAmora
d89f4c769f Improve readback of unaplied or invalid strings 2024-01-23 16:28:55 -03:00
imaqtkatt
379414aa36 Return readback error for nested strings 2024-01-23 16:28:23 -03:00
imaqtkatt
4eaa1a6f3a Add match bind syntax 2024-01-23 14:12:43 -03:00
imaqtkatt
20558e7fdf Implement list resugar 2024-01-23 09:57:02 -03:00
LunaAmora
35a85586eb Fix unused dup var linearization 2024-01-22 22:52:02 -03:00
Nicolas Abril
ebd469a4ae
Merge pull request #136 from HigherOrderCO/bug/sc-379/combinators-are-not-extracted-when-just-inside
[sc-379] Extract applications of recursive refs as combinators
2024-01-22 20:32:47 +01:00
LunaAmora
dd47e55123 Improve supercombinators to detach self-contained unscoped terms 2024-01-22 14:49:52 -03:00
Nicolas Abril
0f76255576 [sc-383] Implement flattening with Era pats 2024-01-22 18:00:19 +01:00
Nicolas Abril
3443c442bd [sc-383] Fix pattern matching function encoding when there are unbound vars 2024-01-22 17:19:19 +01:00
LunaAmora
2781fb8db8 Extract applications of recursive refs as combinators 2024-01-22 09:45:50 -03:00
Nicolas Abril
00c5e3cd23
Merge pull request #134 from HigherOrderCO/bug/sc-332/unscoped-lambdas-break-in-match-desugaring
[sc-332] Linearize unscoped vars in adt matches
2024-01-22 12:39:52 +01:00
imaqtkatt
33121afeae Update test snapshots 2024-01-22 08:19:06 -03:00
imaqtkatt
ee41ab3fe2 Delete old test snapshots 2024-01-22 08:17:11 -03:00
imaqtkatt
b73b53045c Update test snapshots 2024-01-22 08:09:41 -03:00
imaqtkatt
0d7ab8a071 Change dir test names 2024-01-22 08:09:41 -03:00
imaqtkatt
69380a3471 Add manual toggle for optimizations 2024-01-22 08:09:41 -03:00
Nicolas Abril
34d24fd7f1 [sc-332] Linearize unscoped vars in adt matches 2024-01-19 20:06:19 +01:00
imaqtkatt
733047c286 Add skip warning opt and show compilation warnings 2024-01-19 16:04:48 -03:00
imaqtkatt
e3002ed1c7 Make extract matches return warnings 2024-01-19 16:03:38 -03:00
Nicolas Abril
542383df16
Merge pull request #133 from HigherOrderCO/feature/sc-359/don-t-allow-main-to-be-called-by-any-functions
[sc-359] Don't allow main to be called by any functions
2024-01-19 19:10:09 +01:00
LunaAmora
28f1de8612 Fix ref_to ref pass, fix ref_to_main & self_ref tests 2024-01-19 14:36:12 -03:00
LunaAmora
2d4693822f Don't allow main to be called by any functions 2024-01-19 11:55:07 -03:00
Nicolas Abril
19b6187671 [sc-332] Separate adt match extraction from num match normalization 2024-01-19 14:59:58 +01:00
LunaAmora
e3869bd687 Revert adt_option_and change 2024-01-19 09:56:36 -03:00
LunaAmora
4bc5ab45f7 Update eta reduction to run on all rule with OptimizationLevel::Heavy 2024-01-19 09:42:26 -03:00
LunaAmora
bfb3bbe7ec Add tests for the eta_reduction pass 2024-01-19 09:42:26 -03:00
LunaAmora
293eaf4a28 Fix assignment of generated field on flattened rule definitions 2024-01-19 09:42:26 -03:00
LunaAmora
7d53a4c77e Fix unused let vars with unscoped lam/vars 2024-01-19 09:11:43 -03:00
Nicolas Abril
0bb9f4b4cf [sc-332] Fix linearization of matches 2024-01-18 20:33:54 +01:00
Nicolas Abril
4e8aece908 [sc-332] Don't extract num matches into separate defs 2024-01-18 19:38:35 +01:00
imaqtkatt
e2d52fb8a9 Fix wrong main skip in pre reduce 2024-01-18 10:28:20 -03:00
imaqtkatt
1909eb26a6 Make supercombinator pass not extract from main 2024-01-18 07:32:16 -03:00
Nicolas Abril
a90a38d0fe
Merge pull request #117 from HigherOrderCO/bug/sc-339/don-t-apply-eta-reduction-on-all-functions
[sc-339] Improve eta-reduction to not apply on all functions
2024-01-17 19:02:21 +01:00
imaqtkatt
c93b313337
Merge pull request #121 from HigherOrderCO/feature/sc-355/add-list-syntax-in-pattern-matching
[sc-355] Add list syntax in pattern matching
2024-01-17 14:48:19 -03:00
Nicolas Abril
f10d4c66c1
Merge pull request #120 from HigherOrderCO/bug/sc-354/hvm-lang-showing-multiple-errors-instead
[sc-354] Improve parsing to not show "multiple errors"
2024-01-17 18:08:21 +01:00
imaqtkatt
89e1f628e4 Add pattern list syntax 2024-01-17 14:04:40 -03:00
LunaAmora
4d48ff994a Improve parsing to not show "multiple errors" 2024-01-17 11:40:18 -03:00
LunaAmora
5fefb030d9 Add back eta test 2024-01-16 17:47:17 -03:00
imaqtkatt
2d9f473e56 Impl display for list and add list take test 2024-01-16 16:34:28 -03:00
imaqtkatt
62eb9806a9 Add List syntax 2024-01-16 15:21:49 -03:00
LunaAmora
a95942b8c8 Improve eta-reduction to not apply on all functions 2024-01-16 14:17:33 -03:00
Nicolas Abril
ca987568ca
Merge pull request #118 from HigherOrderCO/feature/sc-196/add-n-tuples-to-hvm-lang
[sc-196] Add n-tuples to hvm-lang
2024-01-16 18:16:33 +01:00
LunaAmora
028996d5cb Fix ref_to_ref removal pass 2024-01-16 11:45:56 -03:00
imaqtkatt
4efa2c8f22 Add ntups syntax sugar 2024-01-16 10:44:01 -03:00
Nicolas Abril
4b43e22b5a Add def name to unbound var error msg 2024-01-15 21:23:29 +01:00
Nicolas Abril
9fa036f35b
Merge pull request #114 from HigherOrderCO/bug/sc-348/declaring-a-string-datatype-causes-miscompilation
[sc-348] Declaring a String datatype causes miscompilation
2024-01-15 21:14:48 +01:00
LunaAmora
1e0ef9d7c3 Update hvmc version, fix pre-reduce 2024-01-15 16:37:52 -03:00
imaqtkatt
ab9e71786e Return error if there is a String data type definition 2024-01-15 14:59:49 -03:00
Nicolas Abril
89b73cdb02
Merge pull request #113 from HigherOrderCO/feature/sc-342/update-match-syntax
[sc-342] Update match syntax
2024-01-15 18:11:28 +01:00
Nicolas Abril
f62f3cc3d4
Merge pull request #110 from HigherOrderCO/bug/sc-341/read-special-characters-in-char
[sc-341] Read special characters in char
2024-01-15 15:51:44 +01:00
imaqtkatt
28312a4a54 Add optional 'or' to match arm 2024-01-15 11:40:34 -03:00
imaqtkatt
f40f7d8854 Remove string adt and constructors if not used 2024-01-15 10:16:03 -03:00
Nicolas Abril
9f39f6c9e3
Merge pull request #105 from HigherOrderCO/bug/sc-331/don-t-prune-hvm-lang-data-definitions-as
[sc-331] Don't prune hvm-lang data definitions
2024-01-15 13:39:34 +01:00
Nicolas Abril
6184db40db
Merge pull request #108 from HigherOrderCO/bug/sc-333/match-desugaring-breaks-when-only-variable
[sc-333] Fix pattern matching encoding for functions with only var args
2024-01-15 13:05:29 +01:00
imaqtkatt
fa0e3bf95c Add chars tests 2024-01-15 09:03:06 -03:00
imaqtkatt
734fecf1cf Make hvmc prune start from entrypoint 2024-01-15 08:04:41 -03:00
imaqtkatt
4cd2cfe51e Insert ctrs as used 2024-01-15 08:02:53 -03:00
Nicolas Abril
89b0c80673 Update tests for non-optimizing compilation 2024-01-12 21:40:13 +01:00
imaqtkatt
11ff2633aa Fix push all ctr fields to new_pats 2024-01-12 17:22:48 -03:00
imaqtkatt
c1d651aceb Add tup-wildcard in split rule 2024-01-12 17:22:48 -03:00
imaqtkatt
9160d63b98 Add ctr-wildcard in split rule 2024-01-12 17:22:13 -03:00
Nicolas Abril
95a71b31ed [sc-333] Fix pattern matching encoding for functions with only var args 2024-01-12 20:34:22 +01:00
LunaAmora
d5b6acfe13 Update tests 2024-01-12 14:20:24 -04:00
LunaAmora
47a267b001 Fix readback of rules that reconstructs tups/sups 2024-01-12 14:19:14 -04:00
LunaAmora
6dbbac7c77 Fix Num pattern matching encoding 2024-01-12 14:07:15 -04:00
Nicolas Abril
c5fb8ac3e5
Merge pull request #106 from HigherOrderCO/feature/sc-335/update-string-desugaring
[sc-335] Update String desugaring
2024-01-12 16:36:54 +01:00
imaqtkatt
c0c4c7e91f Update test snaps 2024-01-12 09:36:04 -03:00
imaqtkatt
318c0930b9 Update golden_tests files 2024-01-11 18:31:28 -03:00
FranchuFranchu
fecfff0622 Merge branch 'master' into improve-docs 2024-01-11 15:51:11 -03:00
imaqtkatt
ba9ec997e9
Merge pull request #104 from HigherOrderCO/feature/sc-329/allow-specifying-unicode-escape-sequences
[sc-329] Allow specifying unicode escape sequences
2024-01-11 14:24:39 -03:00
imaqtkatt
2b0b837438
Merge pull request #101 from HigherOrderCO/feature/sc-324/improve-syntax-for-tagged-terms
[sc-324] Improve syntax for tagged terms
2024-01-11 13:51:36 -03:00
imaqtkatt
24d14bef86 Add upper unicode escape syntax 2024-01-11 10:37:21 -03:00
imaqtkatt
1fa587400d Support longer and shorter escape sequences 2024-01-11 10:27:04 -03:00
imaqtkatt
f0b86189dd Change dup syntax to match let 2024-01-10 18:08:50 -03:00
Nicolas Abril
a710a2cb6c
Merge pull request #102 from HigherOrderCO/bug/sc-330/exhaustiveness-check-fails-for-some-number
[sc-330] Fix and refactor pattern exhaustiveness check
2024-01-10 21:29:27 +01:00
Nicolas Abril
25998991ae [sc-330] Fix and refactor pattern exhaustiveness check 2024-01-10 20:13:58 +01:00
imaqtkatt
84b1cfbf34 Change dup syntax 2024-01-10 15:33:48 -03:00
imaqtkatt
d9e13286c8 Update tests 2024-01-10 15:33:48 -03:00
LunaAmora
cc441edcbd Make adts with fields compatible with vectorization 2024-01-10 11:09:32 -04:00
LunaAmora
de669f3edc Simplify the generated encoding for pattern matching when args are ignored 2024-01-10 10:47:56 -04:00
Nicolas Abril
f8a7d0ff0c Merge remote-tracking branch 'origin/master' 2024-01-10 15:05:50 +01:00
Nicolas Abril
a4074e636a Rename test suite that runs programs 2024-01-10 15:05:23 +01:00
Nicolas Abril
94d85cd345 Rename test suit that runs files 2024-01-10 14:59:05 +01:00
FranchuFranchu
5ebc6993db Merge remote-tracking branch 'origin/feature/sc-310/make-hvml-adts-with-fields-compatible-with' into improve-docs 2024-01-10 10:51:01 -03:00
FranchuFranchu
cffbc34f76 Merge remote-tracking branch 'origin/master' into improve-docs 2024-01-10 10:47:31 -03:00
Nicolas Abril
cb7de8a18f
Merge pull request #99 from HigherOrderCO/bug/sc-325/fix-documentation-for-string-syntax
[sc-325] Fix documentation for string syntax
2024-01-10 14:05:30 +01:00
imaqtkatt
ba843a8131 Fix string doc and change string label to lowercase 2024-01-10 09:57:02 -03:00
LunaAmora
293a060646 Make adts with fields compatible with vectorization 2024-01-10 08:26:35 -04:00
Nicolas Abril
a4627db599 [sc-313] Improve compile-time reduction pass, add inet pruning 2024-01-09 20:11:31 +01:00
LunaAmora
c22aa01009 Add support for matching on any term 2024-01-08 08:02:56 -04:00
imaqtkatt
e5b61e3973 Update tests 2023-12-15 13:44:56 -03:00
imaqtkatt
882d2abad1 Add normalized string function 2023-12-15 09:55:03 -03:00
imaqtkatt
49ee9d5eea Add string encoding 2023-12-14 14:44:33 -03:00
imaqtkatt
8ab5ea9997 Add string syntax 2023-12-14 10:25:17 -03:00
Nicolas Abril
b7520dc25a
Merge pull request #87 from HigherOrderCO/fix-tuple-defs-calls
Fix tuple defs applications
2023-12-14 12:46:38 +01:00
Nicolas Abril
e293b9a54d [sc-304] Add the test changes 2023-12-13 18:52:32 +01:00
imaqtkatt
3394f35391 Fix tuple defs applications 2023-12-13 14:08:49 -03:00
Nicolas Abril
ea2551cce9 [sc-304] Refactor pattern matching code, change Num pattern representation 2023-12-13 17:34:52 +01:00
imaqtkatt
34c591d297 Fix unbound let free vars 2023-12-13 09:22:15 -03:00
imaqtkatt
3d2b66e5ef Desugar lets into matches 2023-12-12 10:28:09 -03:00
imaqtkatt
2638626505 Add def_tups test 2023-12-12 08:35:20 -03:00
imaqtkatt
870136a907 Implement desugar for lets 2023-12-11 15:01:43 -03:00
Nicolas Abril
97cbbdad21
Merge pull request #80 from HigherOrderCO/add-matching-of-numbers
[sc-272] Add matching of numbers
2023-12-11 15:38:54 +01:00
imaqtkatt
61f0c4a931 Add num_pred test 2023-12-11 11:36:56 -03:00
imaqtkatt
7cc2760441 Implement proper check for num pattern 2023-12-11 11:18:41 -03:00
LunaAmora
c596881683 Adjust example and readme 2023-12-11 09:13:06 -04:00
LunaAmora
82ed3f90e4 Add more examples on example.hvm 2023-12-11 09:13:06 -04:00
Nicolas Abril
23b8af1806 Update hvml to new hvmc op1 node, remove restriction on pre-reduction 2023-12-08 13:56:26 +01:00
imaqtkatt
ef2f2d3790 Adjust num encoding 2023-12-07 15:12:19 -03:00
imaqtkatt
ef519ba259 Fix matching num with vars 2023-12-07 09:54:31 -03:00
Nicolas Abril
e7a6aa7937 [sc-287] Improve prereduction pass, with new optimization level cli option 2023-12-06 19:43:54 +01:00
Nicolas Abril
4443d27768
Merge pull request #77 from HigherOrderCO/feature/sc-271/add-destruction-of-record-types-with-let
[sc-271] Destruction of record types with let expressions
2023-12-05 20:03:44 +01:00
LunaAmora
0c3091231f Add let and match adt tests 2023-12-05 14:50:39 -04:00
tjjfvi
de02fe45f0
update tests 2023-12-05 12:50:23 -05:00
tjjfvi
9bbe06acd1
update tests 2023-12-05 08:53:27 -05:00
tjjfvi
bb7fe1d163
refactor term display to avoid unnecessary allocations 2023-12-05 08:48:17 -05:00
tjjfvi
ddd7a13b21
unify net_to_term logic; add linear cli flag 2023-12-05 08:48:14 -05:00
tjjfvi
7e7ff509e4
update tests 2023-12-05 08:47:51 -05:00
tjjfvi
e7b80e4c91
add tagged lambdas 2023-12-05 08:47:09 -05:00
imaqtkatt
8367ab9d6c Add tests with unused variables 2023-12-04 16:49:31 -03:00
imaqtkatt
ad73fa9b44 Implement def matching for tuples 2023-12-01 16:42:26 -03:00
Nicolas Abril
cff8c3171a
Merge pull request #72 from HigherOrderCO/feature/sc-286/make-matches-and-pattern-matching-defs-share
[sc-286] Make matches and defs share same logic
2023-12-01 18:36:21 +01:00
imaqtkatt
3d227ba405 Transform match into rules 2023-12-01 11:39:56 -03:00
Nicolas Abril
6becba819f Add other example sort programs 2023-12-01 14:05:55 +01:00
Nicolas Abril
3223f46d70 Fix argument encoding on leaf case of pattern matching functions 2023-12-01 13:43:41 +01:00
Nicolas Abril
b035012063 Fix non-matching function args and order of new args when encoding 2023-12-01 13:25:44 +01:00
tjjfvi
561d056530 add debug mode 2023-12-01 12:50:10 +01:00
imaqtkatt
0abb1cf145
Merge pull request #69 from HigherOrderCO/bug/sc-284/fix-non-exhaustive-pattern-error-message
[sc-284] Fix non exhaustive pattern error message
2023-12-01 08:29:31 -03:00
imaqtkatt
005f11f547 Add not covered cases in error message 2023-11-30 17:14:46 -03:00
LunaAmora
647012136c Fix native match compilation bug 2023-11-30 11:03:00 -04:00
Nicolas Abril
f602eff909
Merge pull request #65 from HigherOrderCO/feature/sc-282/add-hvml-syntax-for-binary-and-hexadecimal
[sc-282] Add hvml syntax for binary and hexadecimal numbers
2023-11-30 14:31:12 +01:00
Nicolas Abril
d5ac567587 Merge remote-tracking branch 'origin/master' into feature/sc-220/add-scott-encoding-transformation 2023-11-30 13:44:38 +01:00
imaqtkatt
d852885ee5 Support underscore in decimals 2023-11-30 09:33:58 -03:00
imaqtkatt
bf3701e194 Add binary and hexadecimal numbers 2023-11-30 09:11:36 -03:00
imaqtkatt
8731178940 Add lte and gte ops 2023-11-29 17:35:06 -03:00
imaqtkatt
656dad5ba9 Add 60 bit numbers support 2023-11-29 16:45:05 -03:00
Nicolas Abril
51655fe5c4 Update for rebase with Num patterns 2023-11-29 19:26:39 +01:00