Commit graph

2389 commits

Author SHA1 Message Date
Richard Feldman
f5cb2d73a1
Merge branch 'precompiled-legacy' into https-packages 2022-11-24 04:29:56 -05:00
Richard Feldman
28bccb792f
Merge remote-tracking branch 'origin/main' into precompiled-legacy 2022-11-24 02:20:50 -05:00
Folkert de Vries
df7f57e4a3
Merge pull request #4563 from roc-lang/fix-recursion-checks-of-inferred-vars
Force occurs check for introduced types after checking annotated bodies
2022-11-23 13:02:50 +01:00
Folkert de Vries
099ab4938f
Merge pull request #4565 from roc-lang/more-standalone
Use include_bytes! so builtin hosts live in binary
2022-11-23 13:01:39 +01:00
Richard Feldman
04e3ac37f4
Fix wasm host_dest name generation 2022-11-23 00:06:43 -05:00
Richard Feldman
c0b065b51a
Fix a couple of preprocessed host bugs 2022-11-22 23:38:07 -05:00
Richard Feldman
d9f3e11634
Add wasm32 support to preprocessed_host_filename 2022-11-22 23:02:12 -05:00
Richard Feldman
bcf53e58fe
Fix a missing to_str() on Windows 2022-11-22 22:44:42 -05:00
Richard Feldman
dcb7ab97c2
Fix a regression in a macOS workaround 2022-11-22 21:12:40 -05:00
Richard Feldman
4e50d3fe2e
Fix a missing .to_str() 2022-11-22 20:58:17 -05:00
Richard Feldman
18fdc54022
Update error message 2022-11-22 20:55:05 -05:00
Richard Feldman
a8b6fa051a
Centralize host tempfile builder logic 2022-11-22 20:52:44 -05:00
Richard Feldman
0b73ea69af
Make sure tempfiles don't get dropped too early 2022-11-22 20:22:08 -05:00
Richard Feldman
6b446fe592
Avoid an unused variable warning 2022-11-22 19:25:15 -05:00
Richard Feldman
9c1291d57d
Give tempfiles the file extensions Zig expects 2022-11-22 19:19:54 -05:00
Richard Feldman
16fd39c4f7
Missed a couple of .to_str().unwrap()s 2022-11-22 18:51:01 -05:00
Richard Feldman
2d83c95d23
Only reference native host binaries (for now) 2022-11-22 18:40:08 -05:00
Richard Feldman
4a601ffd4c
Use tempfile::NamedTempFile in more places 2022-11-22 18:40:06 -05:00
Richard Feldman
2d066469ee
Drop obsolete .gitignore entries 2022-11-22 18:00:51 -05:00
Richard Feldman
e97a5fe7f6
Use include_bytes! so builtin hosts live in binary 2022-11-22 17:57:32 -05:00
Richard Feldman
2dba97d6a2
Simplify legacy_host_filename_ext 2022-11-22 17:19:36 -05:00
Ayaz Hafiz
faa804d54d
Do not run occurs checks when printing type variables
This is a hack. Let's find and correct these problems earlier in the
compiler.
2022-11-22 13:04:32 -06:00
Ayaz Hafiz
c70b23ac9c
Debug Work 2022-11-22 13:04:27 -06:00
Ayaz Hafiz
dce4d6c4c7
Force occurs check for introduced types after checking annotated bodies
The current type inference scheme is such that we first introduce the
types for annotation functions, then check their bodies without
additional re-generalization. As part of generalization, we also perform
occurs checks to fix-up recursive tag unions.

However, type annotations can contain type inference variables that are
neither part of the generalization scheme, nor are re-generalized later
on, and in fact end up forming a closure of a recursive type. If we do
not catch and break such closures into recursive types, things go bad
soon after in later stages of the compiler.

To deal with this, re-introduce the values of recursive values after we
check their definitions, forcing an occurs check. This introduction is
benign because we already generalized appropriate type variables anyway.
Though, the introduction is somewhat unnecessary, and I have ideas on
how to make all of this simpler and more performant. That will come in
the future.
2022-11-22 12:58:51 -06:00
Ayaz Hafiz
40da261dfd
Mark mono test 2022-11-22 12:57:32 -06:00
Ayaz Hafiz
91ceebc065
Fix imports 2022-11-22 11:00:14 -06:00
Richard Feldman
f60ed0059a
Turns out this was used by the repl 2022-11-22 11:55:46 -05:00
Ayaz Hafiz
414a320358
Constrain flex inference variables without re-generalization
When constraining a recursive function like

```
f : _ -> {}
f : \_ -> f {}
```

our first step is to solve the value type of `f` relative to its
annotation. We have to be careful that the inference variable in the
signature of `f` is not generalized until after the body of `f` is
solved. Otherwise, we end up admitting polymorphic recursion.
2022-11-22 10:43:59 -06:00
Ayaz Hafiz
03e6d6d7e0
Report builtins type errors during load building as appropriate 2022-11-22 10:36:41 -06:00
Richard Feldman
7356809fc3
clippy 2022-11-22 10:59:17 -05:00
Richard Feldman
52b71cd85f
Using a HTTPS URL platform implies it's prebuilt 2022-11-22 10:45:22 -05:00
Richard Feldman
f39eaff217
Don't match on the same thing twice 2022-11-22 10:34:04 -05:00
Richard Feldman
b7726c87bb
Drop unused field 2022-11-22 08:49:31 -05:00
Richard Feldman
092d21a663
Properly resolve shorthands to HTTPS URL packages 2022-11-22 08:28:54 -05:00
Ayaz
ef5d83a42d
Merge pull request #4556 from roc-lang/fix-fixpoint-fixing
Correct when fixpoint-fixed type variables can be reunified
2022-11-21 17:44:06 -06:00
Ayaz Hafiz
e1afd964c7
Correct when fixpoint-fixed type variables can be reunified
With fixpoint-fixing, we don't want to re-unify type variables that were
just fixed, because doing so may change their shapes in ways that we
explicitly just set them up not to be changed (as fixpoint-fixing
clobbers type variable contents).

However, this restriction need only apply when we re-unify two type
variables that were both involved in the same fixpoint-fixing cycle. If
we have a type variable T that was involved in fixpoint-fixing, and we
unify it with U that wasn't, we know that the $U \notin \bar{T}$, where
$\bar{T}$ is the recursive closure of T. In these cases, we do want to
permit the usual in-band unification of $T \sim U$.
2022-11-21 15:57:36 -06:00
Brian Carroll
9353c25826
formatting 2022-11-21 19:51:21 +00:00
Brian Carroll
880ef2704c
Merge branch 'main' of github.com:rtfeldman/roc into wasm_module_crate 2022-11-21 19:49:00 +00:00
Brian Carroll
a3cfdd478d
rename called_preload_fns to called_fns 2022-11-21 19:48:02 +00:00
Richard Feldman
721841fa1f
Provide roc_cache_dir everywhere 2022-11-20 19:53:48 -05:00
Richard Feldman
13bed30411
Have Either derive Clone and Copy 2022-11-20 16:20:24 -05:00
Richard Feldman
4139b4ddb1
Combine some imports 2022-11-20 16:20:15 -05:00
Richard Feldman
581c2f248d
Download files into tempdir if no cache available 2022-11-20 11:29:31 -05:00
Richard Feldman
d6fa2acc54
Properly pass around roc_cache_dir during loading 2022-11-20 11:05:53 -05:00
Richard Feldman
79be1f94fa
Go back to old load_platform_module name 2022-11-20 10:40:50 -05:00
Richard Feldman
f9676098d3
clippy 2022-11-20 10:39:57 -05:00
Richard Feldman
0fe3ecd00e
Drop unused enum 2022-11-20 10:39:07 -05:00
Richard Feldman
40bd8ff1de
Support loading platform modules via HTTPS 2022-11-20 10:37:55 -05:00
Richard Feldman
291e6cce73
Make a lock get dropped sooner 2022-11-20 07:08:21 -05:00
Richard Feldman
2cc6a16dd1
Extract an &mut so we don't do it every time 2022-11-20 07:00:30 -05:00