Commit Graph

311 Commits

Author SHA1 Message Date
Anton-4
a3fc724df3 removed unused maplit 2021-11-03 10:50:25 +01:00
Richard Feldman
ac42470c81 Drop unused libc deps 2021-11-02 19:37:38 -04:00
Richard Feldman
06c213a5dd Move some gen_dev deps into dev deps 2021-11-02 19:37:05 -04:00
Anton-4
9af09273b3 update to rust 1.56.1 2021-11-02 14:10:01 +01:00
Folkert
54429162ad clippy 2021-11-01 23:19:47 +01:00
Folkert
a072d8d1b1 fix things 2021-10-20 16:56:04 +02:00
Folkert
63b1aaad4e hook up polymorphic zig builtins 2021-10-20 16:43:39 +02:00
Folkert
78c49d3095 support intrinsics/builtins for more integer types 2021-10-19 21:41:38 +02:00
Folkert
6cc8f8624c a way forward 2021-10-18 11:09:38 +02:00
Brendan Hansknecht
95f29c4d5b Remove stale comment about F16 2021-09-24 08:35:34 -07:00
Brendan Hansknecht
d1021d652d Add StrCat support and update hello-zig to support dev backend 2021-09-24 08:31:31 -07:00
Brendan Hansknecht
2f24067267 Add small string support to the dev backend 2021-09-24 08:12:42 -07:00
Brendan Hansknecht
d3c344e4da Add macros for common builtin types 2021-09-21 15:38:46 -07:00
Brendan Hansknecht
1a6ca4be59 Convert layout map to store Layouts in order to avoid unsafe mangling 2021-09-21 15:27:21 -07:00
Brendan Hansknecht
006fe3beff Remove borrow constraint, it is used for refcounting before the backend 2021-09-21 15:09:10 -07:00
Brendan Hansknecht
1fb0c8043f Optimize away unnecessary jump right before return 2021-09-21 00:14:13 -07:00
Brendan Hansknecht
54e2792b12 Fix typo 2021-09-20 23:41:20 -07:00
Brendan Hansknecht
91057ed8b5 Expand support numeric types 2021-09-20 23:28:57 -07:00
Brendan Hansknecht
16d098da5e Add join points and tail call optimization to the dev backend. 2021-09-20 23:13:30 -07:00
Richard Feldman
a21ad7064c Ignore type errors that have already been reported 2021-09-18 08:24:46 -04:00
Folkert
8f7eab4f05 in tests, make gen_dev generate the same name as LLVM backend 2021-09-16 22:22:07 +02:00
Folkert
539d90b62e make gen tests expose mainForHost like LLVM backend 2021-09-16 21:41:23 +02:00
Brendan Hansknecht
4487e1a3bf Fix merge tabbing bug and make clippy happy 2021-09-05 21:41:09 -07:00
Brendan Hansknecht
08aa3d31d4
Merge branch 'trunk' into gen-dev/mem 2021-09-05 21:31:05 -07:00
Brendan Hansknecht
0696044a5c Update dev backend to allow reusing stack space and using less memory 2021-09-05 21:21:44 -07:00
Brendan Hansknecht
05bea50730 Fix freeing of float registers 2021-09-05 21:18:32 -07:00
Folkert
12bc34f451 clippy 2021-09-05 21:23:08 +02:00
Folkert
8e7aef314a add ListLiteralElement 2021-09-05 21:23:08 +02:00
Brendan Hansknecht
ad974dd473 Add extra commentabout unsafe usage 2021-09-03 11:00:27 -07:00
Brendan Hansknecht
d9d0d0c0af Refactor dev backend to deal with layouts within specific backends. Just check constraints at high level 2021-09-03 10:54:51 -07:00
Folkert
36fc9b5f1f update target-lexicon 2021-08-26 21:39:33 +02:00
Brendan Hansknecht
0f9e735e60 Fix missed clippy warning from newer compiler 2021-08-24 19:32:24 -07:00
Brendan Hansknecht
5066b19901 Clippy lint and cleanup 2021-08-24 19:10:42 -07:00
Brendan Hansknecht
1b401f2eca Disable failing test 2021-08-23 22:04:11 -07:00
Brendan Hansknecht
03bc61cbf8 Merge branch 'trunk' into gen-dev/records-base 2021-08-23 22:01:53 -07:00
Folkert
194918fe4b remove Invoke 2021-08-20 19:32:55 +02:00
Folkert
5171d181ac emit invoke again to see what's up here 2021-08-16 20:44:55 +02:00
Joshua Hoeflich
ab109b8eb8 Comment out code 2021-08-15 18:15:39 -05:00
Joshua Hoeflich
34def25b55 Cargo fmt 2021-08-15 18:14:43 -05:00
Joshua Hoeflich
1c6ac84f2f Add Num.round to dev backend 2021-08-15 17:50:07 -05:00
Folkert
a0a0896622 a working prototype 2021-08-15 23:20:05 +02:00
Brendan Hansknecht
9831261cda Minor formating cleanup 2021-08-15 10:13:19 -07:00
Brendan Hansknecht
cc1b7df06a Merge branch 'trunk' into gen-dev/records-base 2021-08-14 21:21:31 -07:00
Folkert
d4896d3ed2 remove inlinable_string dependency 2021-08-03 21:24:19 +02:00
Folkert
899cbeabd7 fix extra ampersands 2021-07-29 17:32:08 +02:00
Folkert
98b4930054 rename 2021-06-21 23:14:05 +02:00
Folkert
205b168f16 rename 2021-06-21 23:02:49 +02:00
Folkert
e1af2eb7d0 add CoerceToTagId 2021-06-20 21:23:50 +02:00
Eric Correia
342d1f34c2 set up GetTagId 2021-06-20 10:54:53 -04:00
Folkert
6a010c9513 rename TopLevelFunctionLayout -> ProcLayout 2021-06-19 15:07:40 +02:00
Richard Feldman
449ec19b0f
Merge pull request #1420 from rtfeldman/layout-changes
Layout changes
2021-06-19 08:08:07 -04:00
Folkert
4256c22004 more toplevel 2021-06-18 22:25:31 +02:00
Richard Feldman
53ccef0506 nightly clippy
I was on nightly for benchmarks, and these all seem reasonable.
2021-06-18 15:21:11 -04:00
Folkert
b622202d97 rename joinpoint field 2021-06-14 21:12:24 +02:00
Anton-4
22d834ebd9 Merge branch 'trunk' of github.com:rtfeldman/roc into typos_ci 2021-06-07 12:33:26 +02:00
Richard Feldman
811ecd8636 Add descriptions to gen_dev and gen_llvm 2021-06-06 07:56:47 -04:00
Anton-4
314503cf7f fixed typos, added typos checking to CI 2021-06-05 20:02:54 +02:00
Folkert
03cc96f4ed rename Rethrow -> Resume 2021-05-30 14:44:46 +02:00
Folkert
64576ddab5 add exception id to invoke/rethrow 2021-05-29 23:27:43 +02:00
Richard Feldman
666caef00c Fix scope and weak on dev wrapper generation 2021-05-24 23:28:39 -04:00
Richard Feldman
2909c06e72 Add tail_call to ASM trait 2021-05-24 21:41:37 -04:00
Richard Feldman
595c704e88 Generate roc_alloc etc in dev_num tests 2021-05-24 21:36:27 -04:00
Richard Feldman
7d7588ca19 Merge remote-tracking branch 'origin/trunk' into roc_alloc 2021-05-24 20:10:26 -04:00
Folkert de Vries
513a624d28
Merge branch 'trunk' into roc_alloc 2021-05-24 18:22:47 +02:00
Folkert
fbb711b2ca Merge remote-tracking branch 'origin/trunk' into specialize-lowlevel 2021-05-24 15:11:40 +02:00
Richard Feldman
b60988d63e
Merge branch 'trunk' into morphic-lib 2021-05-24 07:18:59 -04:00
Richard Feldman
0e0cf8a16e Renamed gen_dev/gen_num to dev_num 2021-05-23 23:47:09 -04:00
Richard Feldman
a7518a675a Clean up some clippy warnings 2021-05-23 20:28:23 -04:00
Richard Feldman
f4b1e74895
Add a note explaining why commented out 2021-05-23 20:06:06 -04:00
Richard Feldman
6f8804f24a
Merge branch 'trunk' into gen_dev/mac-os 2021-05-22 18:20:37 -04:00
Richard Feldman
c5da16f071
Merge branch 'trunk' into morphic-lib 2021-05-22 15:21:50 -04:00
tarjei
f581b017e8 Enable writing dev backend on macOS 2021-05-22 20:56:40 +02:00
Folkert
ae5b0d8cfd remove by-pointer calls 2021-05-22 13:52:06 +02:00
Brendan Hansknecht
ae6cd1ca4e Update test since frontend doesn't stack overflow anymore 2021-05-20 20:45:06 -07:00
Brendan Hansknecht
1a98ec290e Fix dev backend pointer bug
When using pointers as keys, new ones shouldn't get created. Always
reference an existing item.
2021-05-20 20:36:49 -07:00
Folkert
564aacc1fd Merge remote-tracking branch 'origin/trunk' into specialize-lowlevel 2021-05-20 23:08:53 +02:00
Folkert
c5bd06db66 Merge remote-tracking branch 'origin/trunk' into morphic-lib 2021-05-17 19:32:58 +02:00
Richard Feldman
b3758727e5
Merge branch 'trunk' into gen-dev/div-i64 2021-05-17 00:04:14 -04:00
rvcas
0cd454f21a test: Num.abs for f64 in the dev backend 2021-05-16 19:22:55 -04:00
rvcas
a263f1eac3 test: andpd_freg64_freg64 X86 2021-05-16 19:20:38 -04:00
rvcas
db11453327 feat(gen_dev): implement abs_freg64_freg64 for X86 2021-05-16 19:19:46 -04:00
rvcas
d1cf968c9b feat(gen_dev): stub abs_freg64_freg64 for arm 64 2021-05-16 19:19:14 -04:00
rvcas
388caf9460 feat(gen_dev): Backend64
implement build_num_abs_f64 for generic 64 bit archs
2021-05-16 19:17:00 -04:00
rvcas
65cc9b54fa feat(gen_dev): add method to Assembler trait 2021-05-16 19:16:01 -04:00
rvcas
92505444dd feat(gen_dev): add match case for Float64 to Backend 2021-05-16 19:10:01 -04:00
rvcas
365f1a1f7c feat(gen_dev): add build_num_abs_f64 2021-05-16 19:08:02 -04:00
Folkert
2b72f9e733 add HigherOrderLowLevel 2021-05-16 22:49:57 +02:00
Brendan Hansknecht
2fc46b8752 WIP:struct 2021-05-16 13:28:21 -07:00
Brendan Hansknecht
e56c46ff54 enable record updating tests since they already pass 2021-05-15 23:26:59 -07:00
Brendan Hansknecht
6a38ec03ed enable returning structs
That being said the support is very limited. It really only supports
single field structs and the special case of 2 ints. I realized that
general support for returning structs requires a calling conv extension
for returning them. Instead of adding all of the calling conv versions,
I just added a few basic cases that are shared accross calling conv. It
turns out that the calling conv extension is quite detailed for how it
works in Arm. X86 isn't too detailed overall.
2021-05-15 23:01:23 -07:00
Brendan Hansknecht
ba58e1bbf4 expand supported record tests 2021-05-15 21:17:47 -07:00
Brendan Hansknecht
210004529d float and nested records to the dev backend 2021-05-15 21:05:51 -07:00
Brendan Hansknecht
950d380ea0 Add records to the dev backend 2021-05-15 20:18:04 -07:00
Folkert
4623e0f1ae disable i64_force_stack 2021-05-16 00:35:42 +02:00
Folkert
691fa56d50 make repl evaluate 0-argument thunk 2021-05-16 00:23:04 +02:00
Brendan Hansknecht
69c2b3527c Add i64 multiplication to dev backend 2021-05-15 15:04:49 -07:00
Brendan Hansknecht
91e471e328 Minor cleanup of gen_dev/gen_num tests 2021-05-15 15:02:52 -07:00
Folkert
16fe609464 remove Expr::FunctionPointer 2021-05-15 21:29:10 +02:00
Folkert
357f93a2ee store the layout of a function passed to a lowlevel 2021-05-15 20:54:26 +02:00
Folkert
8799973ffe add update mode variables 2021-05-09 01:03:29 +02:00
Richard Feldman
0a50b0b488 Change license to UPL-1.0
Closes https://github.com/rtfeldman/roc/issues/1199
2021-04-21 19:18:44 -04:00
Folkert
383f35db5a bump bumpalo 2021-04-18 14:36:47 +02:00
Richard Feldman
792a18816a Update authors in Cargo.toml 2021-04-11 08:11:52 -04:00
Folkert
ff3f231155 remove Mode from stdlib 2021-04-01 21:42:38 +02:00
Richard Feldman
9f73c576f3 macro_use must be in crate root 2021-03-26 09:46:33 -04:00
Richard Feldman
6dc5aa2901 Allow dead code on a couple of helpers 2021-03-26 09:16:23 -04:00
Richard Feldman
e5bbca477d Revert "Drop some unused helpers"
This reverts commit 09cf687349.
2021-03-26 09:15:08 -04:00
Richard Feldman
0cd8ea5cea Re-add indoc in the right place 2021-03-26 09:14:43 -04:00
Richard Feldman
09cf687349 Drop some unused helpers 2021-03-26 08:45:47 -04:00
Richard Feldman
202a80df44 Allow upper case acronyms in clippy
This is not a big deal, and not worth changing in a bunch of places
just to appease clippy.
2021-03-25 22:55:29 -04:00
Folkert
55cb780249 don't clone Layout 2021-03-22 14:08:48 +01:00
Eric Henry
7354f0e8ea final test fix 2021-03-13 08:31:48 -05:00
Eric Henry
d47c3d7f49 test fix test 2021-03-12 22:50:48 -05:00
Eric Henry
2a90c147c6 fix Test, another one 2021-03-12 21:46:38 -05:00
Folkert
c1d0af5b39 make things compile/run 2021-03-09 20:19:34 +01:00
Eric Henry
4d046abefa builtin maxI128 initial 2021-03-09 12:47:42 -05:00
Folkert
232c8652d5 clippy 2021-02-20 22:28:01 +01:00
Brendan Hansknecht
7d24d51392 gen_dev: generate and link zig builtins. 2021-02-14 18:15:00 -08:00
Brendan Hansknecht
a783be3332 gen_dev: add switch statements. This also fixes a small bug with comparisons. 2021-02-13 15:35:55 -08:00
Brendan Hansknecht
c609df2d74 gen_dev: generate all functions they may be need if a function pointer is used 2021-02-12 19:42:08 -08:00
Brendan Hansknecht
95be1a1b6d gen_dev: add ability to pass arguments to functions 2021-02-12 19:32:34 -08:00
Brendan Hansknecht
fc3bbb9fbc Merge remote-tracking branch 'origin' into gen_dev/funcs 2021-02-12 17:02:36 -08:00
Brendan Hansknecht
5a3ec0c0ac Switch to base pionter offset addressing.
This change will be needed to deal with passing function arguments.
Without this change, we would need to do multiple passes due to function
arguments being on top of the stack and conflicting with variables.
2021-02-12 17:02:25 -08:00
Brendan Hansknecht
846c82961f gen_dev: add basic function support 2021-02-10 22:38:58 -08:00
Folkert
0ed87828e5 Merge remote-tracking branch 'origin/trunk' into dict 2021-02-10 15:02:53 +01:00
Folkert
ca04411523 fix tests/more uniq removal 2021-02-07 22:50:33 +01:00
Chadtech
69fcbf70ea
Merge branch 'trunk' into dict 2021-01-31 15:46:22 -05:00
Folkert
55eff1dba1 fix oversights 2021-01-28 15:32:22 +01:00
Folkert
936bf459eb initial version of rc optimization 2021-01-28 13:14:54 +01:00
Chadtech
d787d3ef7b
Merge branch 'trunk' into dict 2021-01-25 20:25:37 -05:00
Richard Feldman
427ff12950
Merge branch 'trunk' into dev-backend 2021-01-25 00:56:14 -05:00
Chadtech
ec7d8e0dc9 Bringing in Trunk and resolving conflict 2021-01-23 21:23:31 -05:00
Brendan Hansknecht
9032c8c43b Expand register names for more readability 2021-01-21 21:14:21 -08:00
Brendan Hansknecht
5cabdd83b0 Merge remote-tracking branch 'origin/trunk' into dev-backend 2021-01-21 21:01:10 -08:00
Chadtech
609bb21fad Merge branch 'trunk' of github.com:rtfeldman/roc into dict 2021-01-21 22:46:47 -05:00
Folkert
15cbadf652 add inc field to Inc instruction 2021-01-22 00:16:20 +01:00
Brendan Hansknecht
244113ede2 Add floating point addition 2021-01-19 15:25:21 -08:00
Sébastien Besnier
3c5549072c add tests for SETE instruction 2021-01-19 18:32:45 +01:00
Sébastien Besnier
1ee2c7a40f add equality testing in gen_dev 2021-01-19 15:08:03 +01:00
Chadtech
a46a7ef06a builtin_defs_map passed in explicitly in many places that want to monomorphize, so that we can use a new test_builtin_defs in tests. Hash test works 2021-01-18 22:38:51 -05:00
Brendan Hansknecht
71b7ee7fab Fix test with large float 2021-01-18 12:25:50 -08:00
Brendan Hansknecht
108dfb758e Add floats literal loading tests to dev backend 2021-01-18 12:11:13 -08:00
Brendan Hansknecht
7f8511532a Add floats to the dev backend 2021-01-18 12:07:47 -08:00
Brendan Hansknecht
eecdc7ff85 Add a lot of general information on the dev backend 2021-01-17 10:09:34 -08:00
Brendan Hansknecht
ea3d7cfd3f Small todo update 2021-01-16 17:10:37 -08:00
Brendan Hansknecht
2561620c18 Merge remote-tracking branch 'origin/trunk' into dev-backend 2021-01-16 17:09:56 -08:00
Folkert
ab6cb7ac93 pass stdlib by reference 2021-01-14 16:49:55 +01:00
Sébastien Besnier
85f146c688 fix extra space in comment 2021-01-14 07:59:26 +01:00
Sébastien Besnier
1961cf771a fix subtraction error implementation 2021-01-13 21:18:59 +01:00
Sébastien Besnier
dfed317f8e add x86_64 subtraction support for gen_dev 2021-01-13 20:56:33 +01:00