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