Commit Graph

1650 Commits

Author SHA1 Message Date
Folkert
d0f031fe6c use captured_symbols to determine the closure type 2020-10-15 16:17:59 +02:00
Folkert
b7e099a6c8 add captured symbols field to Closure 2020-10-15 16:08:35 +02:00
Folkert
6318f032df first shot at implementing closure layout 2020-10-15 16:03:56 +02:00
Folkert
ca2efc27bd Merge remote-tracking branch 'origin/trunk' into sized-functions-inference 2020-10-15 14:34:32 +02:00
Richard Feldman
56e600d988
Merge branch 'trunk' into top-level-thunks 2020-10-14 21:00:51 -04:00
Folkert
02a396d08a use fast calling convention 2020-10-15 01:46:28 +02:00
Folkert
b440ab90f6 infer closure size! 2020-10-14 23:26:44 +02:00
Folkert
7f1dd80392 hook up size inference, WIP 2020-10-14 22:55:25 +02:00
Folkert
ed592d3d10 refactor solve_module 2020-10-14 22:28:53 +02:00
Folkert
de8ad07f2e Merge branch 'top-level-thunks' into sized-functions-inference 2020-10-14 21:58:53 +02:00
Folkert
729e16cad9 clippy 2020-10-14 21:42:22 +02:00
Folkert
31e963fad6 make sure that the jit is linked in when running the repl 2020-10-14 21:30:35 +02:00
Folkert
ba99b96164 add repl test for type error 2020-10-14 20:53:19 +02:00
Folkert
ceccebd235 fix repl error reporting 2020-10-14 18:15:08 +02:00
Folkert
cb9ce5e8d7 use modules in the repl 2020-10-14 17:48:56 +02:00
Folkert
b3e3eb24a8 missed a thing 2020-10-14 17:07:19 +02:00
Folkert
106024b4bb fix bug converting recursive tag union to solved type 2020-10-14 16:57:43 +02:00
Folkert
62ed1508d5 fix mistake in tests
no idea why this passed before, it clearly shouldn't
2020-10-14 16:37:53 +02:00
Folkert
8338296da2 add top-level thunks to the scope everywhere 2020-10-14 15:03:41 +02:00
Folkert
07e29eb34c initial implementation 2020-10-14 14:43:59 +02:00
Folkert de Vries
391f5b5e17
Merge branch 'trunk' into clippy 2020-10-14 12:09:27 +02:00
Brendan Hansknecht
eb7e39bf7b Make clippy happy 2020-10-13 20:26:00 -07:00
Folkert
f07fe1879b fix problem with specializing rigids 2020-10-14 02:21:33 +02:00
Folkert
6aaba98d31 enable recursive definitions at the top-level 2020-10-14 01:08:20 +02:00
Folkert
2da2c25d32 research bug with linked list and uniqueness 2020-10-14 00:49:14 +02:00
Folkert
f6106166f1 fix bug with nested lets 2020-10-14 00:32:58 +02:00
Folkert
89a1146c19 run gen tests as modules 2020-10-13 21:45:41 +02:00
Folkert
2bceaf0503 implement LayoutCache on top of ena 2020-10-13 16:10:38 +02:00
Folkert de Vries
d9827ae467
Merge branch 'trunk' into improve-dependency-solving 2020-10-13 00:55:19 +02:00
Richard Feldman
a7da54516a Cast i64 to f64 instead of using builtin bitcode 2020-10-12 17:59:20 -04:00
Folkert
edc0717a7d specialize rigids 2020-10-12 23:58:39 +02:00
Folkert
973a632c25 add helper that instantiates rigids to flex vars 2020-10-12 23:52:41 +02:00
Folkert
30ff471a1b appease clippy 2020-10-12 22:19:13 +02:00
Folkert
2df86b6438 fix uniqueness bug
builtin defs were included twice, which threw off uniqueness inference
2020-10-12 22:16:10 +02:00
Folkert
78d1a01742 hopefully fix race condition bug 2020-10-12 20:26:11 +02:00
Richard Feldman
a3d81108c3
Merge branch 'trunk' into improve-dependency-solving 2020-10-12 10:23:53 -04:00
Folkert
9ad72d4979 fix unreported clippy warnings 2020-10-12 16:22:19 +02:00
Folkert
2e8499f92c fix unused import bug 2020-10-12 16:12:27 +02:00
Folkert
27cdcffec0 Merge remote-tracking branch 'origin/trunk' into improve-dependency-solving 2020-10-12 16:10:25 +02:00
Richard Feldman
2758c7f04c Always use a minimum of 1 worker 2020-10-12 09:33:11 -04:00
Folkert
06bc187f8b all tests passing + clippy satisfied 2020-10-12 01:42:03 +02:00
Brendan Hansknecht
b88f3674bb Add dynamic path for libgcc 2020-10-11 16:09:40 -07:00
Brendan Hansknecht
6e130d51bc Make link paths generic and add libgcc_s 2020-10-11 14:31:42 -07:00
Folkert
40f0588696 back to a working state 2020-10-11 21:55:26 +02:00
Folkert
5b14dc73f6 allow multiple external specializations per symbol 2020-10-11 15:25:15 +02:00
Folkert
1cd8b21670 ugh clippy 2020-10-10 20:30:33 -04:00
Folkert
fb82897e3d fix new clippy warnings 2020-10-10 20:30:33 -04:00
Richard Feldman
1c49a95e64 parse_and_constrain doesn't need to own module_ids 2020-10-10 20:30:33 -04:00
Richard Feldman
b8eff12767 Use parking_lot::Mutex 2020-10-10 20:30:33 -04:00
Folkert
4f9b27b694 sketch of a proof of concept 2020-10-11 01:54:50 +02:00
Folkert
79d3b0ac01 cross module specialization WIP 2020-10-11 01:23:52 +02:00
Folkert
5c558a9a87 get it up and running 2020-10-10 22:35:38 +02:00
Folkert
d8a0760726 hook up finding specializations 2020-10-10 21:02:31 +02:00
Folkert
8eec622d23 move over code that tries to do the full specialization process in parallel 2020-10-10 20:40:55 +02:00
Folkert
37e0523557 preparations for specializing 2020-10-10 20:28:46 +02:00
Folkert
03d9a8821b ugh clippy 2020-10-10 20:11:26 +02:00
Folkert
d346482b76 fix new clippy warnings 2020-10-10 19:59:58 +02:00
Folkert
7963843b9c cleanup 2020-10-10 19:39:33 +02:00
Folkert
085c5f54de use a Dependencies struct to track what the dependencies between modules are and when they are met 2020-10-10 19:29:10 +02:00
Richard Feldman
aab8e41d7c Clean up some dead comments 2020-10-07 22:21:36 -04:00
Folkert
3f4ec2068e weird clippy quirk 2020-10-08 01:53:02 +02:00
Folkert
518f45222a all things clippy 2020-10-08 01:32:47 +02:00
Folkert
c7b251d6b4 Merge remote-tracking branch 'origin/trunk' into gen-modules 2020-10-08 01:29:32 +02:00
Folkert
768dbbc553 all tests passing 2020-10-08 00:53:06 +02:00
Folkert
f16e17823e fix load tests 2020-10-07 23:25:47 +02:00
Folkert
6976682783 solving some compile errors 2020-10-07 21:28:42 +02:00
Richard Feldman
58e190c466 Support compiling cargo hosts 2020-10-05 22:51:08 -04:00
Richard Feldman
7e1166b3a2 Rebuild hosts automatically (for now) 2020-10-04 16:35:32 -04:00
Richard Feldman
ad16aa61e9 Change linking back 2020-10-04 16:35:21 -04:00
Richard Feldman
d776798e32 Attempt to statically link hosts 2020-10-04 16:35:17 -04:00
Richard Feldman
9405eeeb06 Fix linux linking issues 2020-10-04 16:35:04 -04:00
Richard Feldman
841373edb2 Fix linker argument order 2020-10-04 16:35:04 -04:00
Richard Feldman
48570bceef Update link.rs 2020-10-04 16:34:48 -04:00
Richard Feldman
34251f84db Link macOS hosts 2020-10-04 16:34:32 -04:00
Richard Feldman
26dfa01205 Extract target triple and linking logic 2020-10-04 16:34:11 -04:00
Richard Feldman
1c06f3fee1 Don't special-case vendors in target strings 2020-10-04 16:34:01 -04:00
Richard Feldman
4ec16749a0 Use _ over # when exporting linkable symbols 2020-10-04 15:58:13 -04:00
Folkert
faa5b2c830 fix clippy's qualms 2020-10-04 00:20:13 +02:00
Folkert
c4b4cb013e implement record update 2020-10-04 00:06:14 +02:00
Folkert
16ec417324 record update foundations 2020-10-03 21:44:25 +02:00
Folkert
c8e5acf142 code gen Accessor 2020-10-03 21:44:04 +02:00
Folkert
e9f5c1a73c actually infer the size 2020-10-02 22:33:31 +02:00
Folkert
c00cd2f415 hook everything up in the gen tests 2020-10-02 21:04:42 +02:00
Folkert
05d1f28e83 add logic to generate/solve closure size constraints 2020-10-02 20:46:47 +02:00
Folkert
a0c6952258 fix problem in uniqueness inference 2020-10-02 01:08:37 +02:00
Folkert
2e1e87ad6a add closure size variable 2020-10-02 00:53:02 +02:00
Richard Feldman
cc0fd32f27
Merge branch 'trunk' into str-refcount 2020-09-30 20:26:21 -04:00
Brendan Hansknecht
fc4f753914 Check the string is big and non-empty 2020-09-30 16:49:47 -07:00
Brendan Hansknecht
b02b25f41d Support variable ptr sizes in string refcount 2020-09-30 15:17:29 -07:00
Brendan Hansknecht
a2069a88db Merge branch 'trunk' into str-refcount 2020-09-30 15:12:17 -07:00
Folkert
a0538c815b use RocList in tests 2020-09-30 22:13:59 +02:00
Folkert
d46fb7bfb6 fix bool tests 2020-09-30 21:49:33 +02:00
Brendan Hansknecht
1082d88b2b Remove unused value from increment_refcount_ptr 2020-09-30 06:58:10 -07:00
Folkert
3d46d19585 round up malloc, but only sometimes 2020-09-30 15:57:53 +02:00
Folkert
95dffad073 WIP 2020-09-30 15:01:24 +02:00
Richard Feldman
2993d40b85 Don't support compiling to 128-bit targets 2020-09-30 08:23:44 -04:00
Brendan Hansknecht
46db0fd989 Properly size refcount based on system ptr size 2020-09-29 17:27:29 -07:00
Brendan Hansknecht
0c5beb59cb Add refcount incrementing to big strings 2020-09-29 16:14:20 -07:00
Brendan Hansknecht
5c825209eb
Merge branch 'trunk' into leak-refcount 2020-09-28 20:39:30 -07:00
Brendan Hansknecht
f532a758d9 Add refcount decrementing to big strings 2020-09-28 20:32:32 -07:00
Pablo Hirafuji
ebdeecd5d2 Run cargo fmt [2] 2020-09-27 20:59:31 -03:00
Pablo Hirafuji
0c0f70aba0 Add more docs files and check def exposition 2020-09-27 20:41:51 -03:00
Pablo Hirafuji
d68d8b4347 Merge branch 'trunk' into feature/docs-read-parse-file 2020-09-27 19:41:47 -03:00
Pablo Hirafuji
aed612a75c Load docs from files 2020-09-27 19:40:54 -03:00
Brendan Hansknecht
9e9552186e Fix list refcount dec 2020-09-27 10:18:01 -07:00
Brendan Hansknecht
51e1cd61dd Intentionally leak memory with 0 for refcount
A 0 value for refcount is the max and means leaked/read-only memory.
These values should never be incremented or decremented.
This changes also uses signed overflow when decrementing memory.
2020-09-27 09:34:51 -07:00
Brendan Hansknecht
3d6d5d1ad0 Switch refcount of 1 to be isize::MIN as usize
Also, adds helper methods for inc/dec of refcount.
2020-09-27 09:28:23 -07:00
Richard Feldman
47b1d45739 Check in builtins.bc 2020-09-26 23:59:10 -04:00
Richard Feldman
2626be4e39 Extract libm.rs into its own module 2020-09-26 23:57:40 -04:00
Richard Feldman
e55fba8aeb Extract regenerate.sh script 2020-09-26 23:52:48 -04:00
Richard Feldman
6a82fb27f8 Regenerate builtins.bc 2020-09-26 23:17:03 -04:00
Jared Ramirez
5cafbcd5ad Add Num.atan builtin 2020-09-26 19:00:51 -07:00
Folkert
f492800a28 recursive refcount on lists 2020-09-22 21:58:45 +02:00
Richard Feldman
94b1760965 Remove redundant variable 2020-09-21 21:27:39 -04:00
Richard Feldman
9381207f61 Clarify some comments 2020-09-21 21:26:56 -04:00
Folkert de Vries
2457042989
Merge branch 'trunk' into num-add-wrap-check 2020-09-21 23:58:05 +02:00
Folkert
9ac5533f80 final touchups 2020-09-21 23:57:05 +02:00
Folkert
515f717536 don't explicitly add filler bytes
leaving the memory undefined is fine
2020-09-21 23:55:05 +02:00
Folkert
b42a49035a fix some comments 2020-09-21 23:52:04 +02:00
Folkert
fb4a796e07 add different variants of addition 2020-09-21 23:38:10 +02:00
Folkert
455b73e8bd add isFinite to builtins bytecode 2020-09-21 23:31:11 +02:00
Folkert
ac8e3928e3 remove unneeded test 2020-09-21 23:30:11 +02:00
Folkert
95177eee5a integer addition operations 2020-09-20 20:21:45 +02:00
Folkert
f732eb3e83 crash upon integer overflow 2020-09-20 17:01:00 +02:00
Richard Feldman
007380a00f Merge remote-tracking branch 'origin/trunk' into exception-handling 2020-09-19 22:48:36 -04:00
Richard Feldman
b50483eedf Use rtfeldman/inkwell release2 tag 2020-09-19 22:48:29 -04:00
Guilherme Belmonte
c684dad429 Fix typos 2020-09-19 20:52:31 -03:00
Folkert
16fc5dd497 Merge remote-tracking branch 'origin/trunk' into exception-handling 2020-09-19 21:50:57 +02:00
Folkert
be6752542b update to run on our fork of inkwell again 2020-09-19 21:50:33 +02:00
Folkert
cdb768e458 add file with the roc/rust interface info 2020-09-19 01:47:10 +02:00
Folkert
9a0a13646f fix repl 2020-09-19 01:46:14 +02:00
Richard Feldman
7aada6c485
Merge pull request #529 from rtfeldman/add-attribution
Add attribution for pow_int_
2020-09-17 22:37:17 -04:00
Jared Ramirez
665c7c7f9f Add Num.floor 2020-09-17 17:44:53 -07:00
Richard Feldman
cc0f2ce700 Add attribution for pow_int_ 2020-09-17 20:27:50 -04:00
Folkert
14da3906da wip 2020-09-18 01:07:53 +02:00
Dimitar Apostolov
9276fd8c9d Add function to call bitcode 2020-09-17 14:07:25 +02:00
Dimitar Apostolov
e89af31015 Use own implementation of pow_int_ instead of llvm
Remove LLVM intrinsics code related to `Num.powInt`.
2020-09-17 14:07:18 +02:00
Dimitar Apostolov
2404882c1a Add Num.powInt implementation 2020-09-17 11:42:37 +02:00
Dimitar Apostolov
51e4b14131 Add Num.powInt types 2020-09-17 11:36:53 +02:00
Dimitar Apostolov
50223ae93c Add canonical Expr implementation for Num.powInt 2020-09-17 11:31:13 +02:00
Dimitar Apostolov
11383e97ab Add Num.powInt symbol 2020-09-17 11:23:57 +02:00
Richard Feldman
1c8383b3bb clippy things 2020-09-16 19:34:48 -04:00
Richard Feldman
5d3645350d Merge remote-tracking branch 'origin/trunk' into small-str 2020-09-16 02:23:06 -04:00
Richard Feldman
4713d41e76 Drop obsolete test 2020-09-16 02:03:34 -04:00
Richard Feldman
bec7254d92 Zero-initialize small strings using memset 2020-09-16 01:38:00 -04:00
Richard Feldman
8e630fc9fc Reproduce small string bug 2020-09-16 01:20:02 -04:00
Richard Feldman
96445262f6 Add memset intrinsic 2020-09-16 01:15:30 -04:00
Richard Feldman
bbbf5de6a5 Simplify call_intrinsic 2020-09-16 01:15:19 -04:00
Jared Ramirez
a0402bca4d Add Num.ceiling 2020-09-15 18:37:45 -07:00
Richard Feldman
099d9e35f6
Merge pull request #518 from rtfeldman/c-abi-progress
C abi progress
2020-09-14 18:28:20 -04:00