Commit Graph

349 Commits

Author SHA1 Message Date
Chelsea Troy
0cc6e44d35
Thread through the divCeil implementation from Zig:
+ OPEN QUESTION: Evidently the Zig implementation can throw an overflow error. Do we want to do something in Roc to fix this?
2021-10-17 10:46:16 -05:00
Folkert
9763f9b51b WIP 2021-10-17 16:08:41 +02:00
Folkert
7773cf9b4d clippy 2021-10-14 20:12:43 +02:00
Folkert
19eadbfe70 make list inc/dec non-recursive (except when freeing the list) 2021-10-14 19:57:23 +02:00
Folkert
94e8c62613 make things compile, base64 has a memory leak 2021-10-06 22:57:11 +02:00
Folkert de Vries
fa4875da83
Merge pull request #1761 from rtfeldman/giesch
Add List.dropAt
2021-10-04 15:01:17 +02:00
Richard Feldman
47c52b0220
Merge pull request #1737 from rtfeldman/fix-repl-sum-crash
repl cannot handle some functions
2021-10-03 15:52:26 -05:00
Dan Knutson
65821d6a9f remove giesch/todo tags, add List.drop doc 2021-10-03 13:55:11 -05:00
Dan Knutson
3baff93a97 add first version of List.dropAt
* adds an implementation with no uniqueness/mutability
2021-10-03 13:55:11 -05:00
Folkert
0690633116 spec for List.reverse 2021-10-03 13:34:09 +02:00
Folkert
13d480d5f3 spec for list append 2021-10-03 13:27:47 +02:00
Folkert
018348bd83 make Str.fromUtf8 in-place 2021-10-03 12:13:17 +02:00
Folkert
9e97a09a87 check if exposed function is defined already 2021-10-03 00:57:54 +02:00
Folkert
dbb8acbe67 add in-place List.swap 2021-10-03 00:25:35 +02:00
Folkert
3d7b42deba better error message for when morphic did not specialize 2021-10-03 00:17:15 +02:00
Folkert
fa57ff88a5 disable list of constants in read-only section 2021-10-03 00:16:52 +02:00
Kofi Gumbs
2f574ea75e Remove extraneous .into() 2021-09-29 22:41:30 -04:00
Kofi Gumbs
b32a42f05a Add Str.repeat builtin 2021-09-29 17:32:42 -04:00
Folkert
c11d89c4bf fix typo 2021-09-24 15:47:53 +02:00
Folkert
34a25408c3 fix issue 2021-09-24 14:27:38 +02:00
Folkert
cfdda10df4 fix argument passing 2021-09-22 21:23:53 +02:00
Richard Feldman
33d9077989
Merge pull request #1720 from rtfeldman/direct-return-known-types
return values from roc
2021-09-21 21:43:51 -04:00
Brendan Hansknecht
0c6f8f308f Remove f16. It is not really supported by modern CPU hardware. 2021-09-21 16:51:47 -07:00
Folkert
a4903ccf81 fix repl 2021-09-20 23:27:20 +02:00
Folkert
e319d1e758 make roc main return values, instead of write them into pointer 2021-09-19 22:05:48 +02:00
Folkert
c5eeaab2c2 remove callresult from cli examples 2021-09-19 18:34:42 +02:00
Folkert
7fe652ab19 add Development optimization option 2021-09-15 20:05:39 +02:00
Folkert
bd7ce52e26 only unwrap lambda set at the last moment 2021-09-14 22:20:14 +02:00
Richard Feldman
f619932255
Merge pull request #1699 from rtfeldman/effect-after
Fix closures only monomorphizing once
2021-09-13 19:50:50 -04:00
Folkert
52d36cbe72 fix closure weirdness (skipping or infinite looping) 2021-09-13 22:50:48 +02:00
Folkert
350891468a add LambdaSet layout variant 2021-09-12 17:00:09 +02:00
Folkert
c0cfd6ac16 make conversion a cast again 2021-09-12 14:28:44 +02:00
Folkert
0b893eb972 remove alignment bump again 2021-09-12 14:01:41 +02:00
Richard Feldman
0dd1395331
Merge pull request #1686 from rtfeldman/refcounting-cleanup
Refcounting cleanup
2021-09-11 13:33:36 -04:00
Folkert
cf5bb7ae6e cleanup 2021-09-11 13:56:06 +02:00
Folkert
eeb3c26e16 decref for dict/set 2021-09-10 22:31:39 +02:00
Folkert
cd9b32ba65 fix list decref 2021-09-10 21:53:57 +02:00
Folkert
5e68d31afc expose decref_pointer_check_NULL 2021-09-10 20:42:25 +02:00
Folkert
ac75badbe4 refactor 2021-09-10 20:08:05 +02:00
Folkert
1d8a475ac6 un-pub function 2021-09-10 16:06:14 +02:00
Folkert
05ef6fdeb7 simplify 2021-09-10 15:47:16 +02:00
Folkert
770c8352e3 refactor 2021-09-10 15:29:28 +02:00
Folkert
7627e15266 remove dead code 2021-09-10 14:58:27 +02:00
Folkert
fc15004714 fix C abi issues in exposed main (quicksort platform) 2021-09-10 10:15:01 +02:00
Folkert
3fb6736f7c clarify comment 2021-09-06 22:23:23 +02:00
Folkert
0865826364 Merge remote-tracking branch 'origin/trunk' into wasm-base64 2021-09-06 22:17:52 +02:00
Folkert
05f56a34c7 cleanup 2021-09-05 21:23:08 +02:00
Folkert
6201ac5e6b if all constants, store list + refcount in constants section 2021-09-05 21:23:08 +02:00
Folkert
da966ed506 store integer lists in the constants section 2021-09-05 21:23:08 +02:00
Folkert
8e7aef314a add ListLiteralElement 2021-09-05 21:23:08 +02:00
Folkert
93817a38e2 convert zig struct to roc record 2021-09-04 16:41:29 +02:00
Folkert
1d17a21d1f higher alignment requirement on rocstr/roclist 2021-09-04 15:18:37 +02:00
Folkert
b72726b367 clippy 2021-09-04 01:39:59 +02:00
Folkert
a7eeae05ca support i386 (no linking yet) 2021-09-04 01:31:33 +02:00
Folkert
2954b582a7 layout add allocation_alignment_bytes 2021-09-04 00:21:14 +02:00
Folkert
0ae2c5fe19 check whether a pointer actually stores the tag id in the bits 2021-09-03 23:47:05 +02:00
Folkert
4e39543054 simplify/optimize decref logic 2021-09-01 23:07:56 +02:00
Folkert
85e4afefe8 quick fix for failing expects on wasm 2021-09-01 17:22:57 +02:00
Folkert
5cb7dbd3cc use zig's decref instead of an LLVM implementation 2021-09-01 16:58:05 +02:00
Folkert
59c63ef3a8 fix tag id stored in ptr bits on 32-bit systems 2021-09-01 15:57:32 +02:00
Folkert
b416e854ef Merge remote-tracking branch 'origin/trunk' into wasm-gen-test 2021-08-29 23:14:03 +02:00
Folkert
344f30747d make Dict.len actually return a usize 2021-08-29 23:05:58 +02:00
Folkert
32ef95e3d0 clean up sjlj code gen 2021-08-29 17:09:32 +02:00
Folkert
53c8500d11 use zig to generate round function; llvm gives wasm errors 2021-08-29 17:09:04 +02:00
Richard Feldman
b3e6a248cf Cast to expect_failed in LLVM, not zig 2021-08-28 21:24:16 -04:00
Folkert
b57632e4cc pass list to zig according to c abi 2021-08-29 00:24:59 +02:00
Joshua Hoeflich
4e57b1edf2 Bump expect to run Rust fn 2021-08-28 11:10:02 -05:00
Joshua Hoeflich
93b77a840a Threading through null ptr 2021-08-28 10:57:52 -05:00
Joshua Hoeflich
8fc663b735 Expect no longer crashes 2021-08-28 10:08:12 -05:00
Folkert
8fa4e55c74 Merge remote-tracking branch 'origin/trunk' into wasm-cli-option 2021-08-27 09:35:34 +02:00
Richard Feldman
ffeaa1ac08
Merge branch 'trunk' into store-dec-as-str 2021-08-26 21:24:56 -04:00
Folkert
36fc9b5f1f update target-lexicon 2021-08-26 21:39:33 +02:00
Folkert
fca5463751 more faithfully implement the C abi
when generating llvm/roc functions for e.g. roc_fx_putLine
2021-08-26 21:22:21 +02:00
Jared Ramirez
4b2a63fb30 Merge branch 'trunk' of https://github.com/rtfeldman/roc into store-dec-as-str 2021-08-26 11:23:17 -07:00
Jared Ramirez
8594f2efbe Change how decimals are stored in mono 2021-08-26 11:18:26 -07:00
Richard Feldman
bc5b8bfbba Merge remote-tracking branch 'origin/trunk' into wasm-cli-option 2021-08-25 23:05:53 -04:00
Folkert
b9cd254b9a allow 4byte alignment in dict values 2021-08-25 22:07:16 +02:00
Folkert
f04ad1643f fix some things 2021-08-25 20:54:34 +02:00
Folkert
05d2b8150f make dict functions work on 32bit platforms 2021-08-25 20:49:07 +02:00
Folkert
4990e543fa make str/list C abi safe 2021-08-25 20:47:03 +02:00
Folkert
ce6ab15139 use usize instead of i64 in hash and compare 2021-08-25 20:47:03 +02:00
Folkert
69e4f6d208 make dict functions work on 32bit platforms 2021-08-25 20:47:03 +02:00
Folkert
a4475b7544 make TestBase64 compile 2021-08-25 20:47:03 +02:00
Folkert
8846841a95 follow the C abi for effect functions the host exposes 2021-08-25 20:47:03 +02:00
Folkert
0a7f7a2772 emit LLVM IR that can be compiled to wasm 2021-08-24 20:56:13 +02:00
Folkert
204e403275 allow 64-bit str in 32-bit mode 2021-08-24 17:00:02 +02:00
Folkert
08c24dde1b make refcount increment support 32-bit 2021-08-24 16:59:27 +02:00
Folkert
40d86551ad build builtins with 32-bit pointers 2021-08-24 16:38:47 +02:00
Folkert
459af15c8f WIP 2021-08-23 21:14:09 +02:00
Folkert
80358d14a3 update target-lexicon 2021-08-23 19:44:53 +02:00
Folkert
194918fe4b remove Invoke 2021-08-20 19:32:55 +02:00
Folkert de Vries
86d46825aa
Merge branch 'trunk' into NumBytesTo 2021-08-20 11:32:20 +02:00
Richard Feldman
4c72aba4a7
Merge branch 'trunk' into store-dec-as-str 2021-08-19 23:06:04 -04:00
Joshua Hoeflich
b57ebb6229 Remove castToNat 2021-08-19 16:11:21 -05:00
Richard Feldman
f279485edf
Merge branch 'trunk' into roc_panic 2021-08-19 07:20:26 -04:00
Richard Feldman
0bebb64bae
Merge branch 'trunk' into NumBytesTo 2021-08-19 01:37:39 -04:00
Jared Ramirez
d69b9173fc Also store f64 for things like pattern comparisons, etc 2021-08-18 17:18:13 -07:00
Joshua Hoeflich
06313a7736 cargo clippy 2021-08-18 18:05:47 -05:00
Folkert
1c7301ea58 refactor 2021-08-18 18:39:12 +02:00
Folkert
e31f5d4fa0 more cleanup 2021-08-18 18:38:18 +02:00
Folkert
012b4baa2e clippy 2021-08-18 18:33:33 +02:00
Joshua Hoeflich
92da003fba Adds castToNat 2021-08-18 11:02:20 -05:00
Folkert
73358b98bd clippy 2021-08-18 15:14:46 +02:00
Folkert
9c27535cee some work, some don't 2021-08-18 15:13:48 +02:00
Folkert
c09b3b89f3 test_gen works again 2021-08-18 13:46:09 +02:00
Folkert
367d08814d don't have compiler generate setjmp/longjmp when building an executable 2021-08-17 22:42:03 +02:00
Folkert
adbc7cdc69 cleanup 2021-08-16 21:16:29 +02:00
Folkert
48e447e558 remove more invoke stuff 2021-08-16 21:14:56 +02:00
Folkert
5171d181ac emit invoke again to see what's up here 2021-08-16 20:44:55 +02:00
Folkert
b9431187f7 remove c++ stuff 2021-08-16 20:33:55 +02:00
Folkert
b04734580d clippy 2021-08-16 20:18:31 +02:00
Folkert
a0a0896622 a working prototype 2021-08-15 23:20:05 +02:00
Folkert
d8e38ef2ac proof of concept 2021-08-15 13:21:14 +02:00
Joshua Hoeflich
22e781259d TODO: Actually implement the functions 2021-08-14 19:28:13 -05:00
Joshua Hoeflich
9dad304e95 Passing arguments successfully to bytesToU16 2021-08-14 19:11:27 -05:00
Joshua Hoeflich
59f07377fe More testing; clean up 2021-08-14 18:23:49 -05:00
Joshua Hoeflich
744fefc3a1 Fixed: Actually calling llvm we generate 2021-08-14 18:20:11 -05:00
Joshua Hoeflich
ff2c3d7945 Dummy implementation that doesn't do what we want 2021-08-14 17:59:53 -05:00
Folkert
225c97aae3 move List.prepend to zig 2021-08-14 12:28:05 +02:00
Folkert
4140473f1a cleanup and comments 2021-08-11 01:12:46 +02:00
Folkert
8c374c8d7d check sizes when casting 2021-08-10 23:46:43 +02:00
Joshua Hoeflich
ae38a0d3ff Cargo fmt 2021-08-08 21:41:00 -05:00
Joshua Hoeflich
c00d400d85 Fixes merge conflict 2021-08-08 21:38:15 -05:00
Joshua Hoeflich
4231b340ee Glue code working 2021-08-08 11:06:10 -05:00
Richard Feldman
2a616103c6 Rename Str.toBytes to Str.toUtf8 2021-08-07 22:46:24 -04:00
Richard Feldman
267836226c s/CodePoint/CodePt/g 2021-08-07 21:46:20 -04:00
Folkert
d4896d3ed2 remove inlinable_string dependency 2021-08-03 21:24:19 +02:00
Folkert
ceb5cc66fa use IdentStr 2021-08-03 21:14:36 +02:00
Folkert
e0648d348d new formatting 2021-07-30 17:13:50 +02:00
Folkert
899cbeabd7 fix extra ampersands 2021-07-29 17:32:08 +02:00
Folkert
768c59f45d bigger tag size fixes 2021-07-24 13:36:06 +02:00
Folkert
2b84fd0009 use WeakAny linking to link in compiler_rt stuff 2021-07-24 12:50:06 +02:00
Folkert
f5e5ec42ad use ptr_int 2021-07-24 12:43:58 +02:00
Folkert
d0be0df83c tweaks 2021-07-24 12:33:57 +02:00
Folkert
59e551dd32 cleanup 2021-07-24 00:13:00 +02:00
Folkert
bafb16091d explicitly include muloti4 in LLVM IR 2021-07-21 15:01:18 +02:00
Folkert
0d606a348e add intrinsics back in ?! 2021-07-18 23:25:31 +02:00
Folkert
23ea151d5f make decimal math ops correctly report overflow 2021-07-18 22:04:32 +02:00
Folkert
cb42f0c039 Merge remote-tracking branch 'origin/trunk' into add-dec-types 2021-07-18 16:54:38 +02:00
Jared Ramirez
de7cab629d
Merge branch 'trunk' into add-dec-types 2021-07-17 17:21:40 -07:00
Richard Feldman
5d5a944ec3
Merge pull request #1480 from rtfeldman/store-tag-id-in-ptr
Store tag id in ptr
2021-07-17 19:27:58 -04:00
Folkert
33caa0f26d cleanup 2021-07-18 00:25:23 +02:00
Folkert
5012b11129 fix oversight 2021-07-18 00:13:45 +02:00
Folkert
e19b03f290 WIP 2021-07-18 00:04:10 +02:00
Folkert
e0b9377dcf refactor wrapped tag creation 2021-07-17 22:18:33 +02:00
Folkert
c57913f767 fix hash and compare 2021-07-17 22:00:57 +02:00
Folkert
bfd189aa19 clear tag id from reused pointer 2021-07-17 21:43:40 +02:00
Folkert
1f1cf180c4 fix merge conflict 2021-07-17 00:07:29 +02:00
Brendan Hansknecht
daddac4e3c
Merge branch 'trunk' into reset-reuse 2021-07-16 14:43:30 -07:00
Folkert
134bdb38ba fix bug in casting recursive pointers 2021-07-16 22:34:41 +02:00