Commit graph

4827 commits

Author SHA1 Message Date
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
Richard Feldman
87ad2cdf82
Fix linux surgical linker tests 2022-11-22 14:27:53 -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
Richard Feldman
c3fa64afbd
Add /packages to ~/.cache/roc over ROC_VERSION 2022-11-22 12:10:45 -05:00
Richard Feldman
207160e22c
Print downloading message when downloading package 2022-11-22 12:05:19 -05:00
Richard Feldman
822f059e6e
Always include ROC_VERSION in cache dir 2022-11-22 12:05:03 -05: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
13caa0bc17
Fix doc comment 2022-11-22 08:38:59 -05:00
Richard Feldman
c7f9ecccf1
Fix compression inference 2022-11-22 08:38:02 -05:00
Richard Feldman
092d21a663
Properly resolve shorthands to HTTPS URL packages 2022-11-22 08:28:54 -05:00
Richard Feldman
d16b247523
Rename some variables 2022-11-22 07:20:35 -05:00
Brian Carroll
a90d9d465d
Merge pull request #4555 from roc-lang/wasm_interp
Wasm interp
2022-11-22 10:45:18 +00:00
Richard Feldman
7b7f64e6c0
Streaming downloading and hash verification works 2022-11-21 19:24:25 -05:00
Brian Carroll
92039547b6
wasm_interp: remove unsafe code 2022-11-22 00:09:38 +00:00
Ayaz Hafiz
e36618b9e9
Support custom abilities for opaques with immaterial lambda sets
If a specialization of an ability member has a lambda set that is not
reflected in the unspecialized lambda sets of the member's prototype
signature, then the specialization lambda set is deemed to be immaterial
to the specialization lambda set mapping, and we don't need to associate
it with a particular region from the prototype signature.

This can happen when an opaque contains functions that are some specific
than the generalized prototype signature; for example, when we are
defining a custom impl for an opaque with functions.

Addresses a bug found in 8c3158c3e0
2022-11-21 18:03:56 -06: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
Brian Carroll
ce10199bb4
clippy + comments 2022-11-21 23:04:22 +00: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
Richard Feldman
ea8bb8820b
Switch from ureq to reqwest::blocking 2022-11-21 15:01:43 -05:00
Brian Carroll
3d7fb380a5
wasm_interp: Tests for ExecutionState 2022-11-21 19:54:48 +00:00
Brian Carroll
26cce05bbe
wasm_module: create WasmModule::new for testing 2022-11-21 19:54:48 +00:00
Brian Carroll
2ca74e5070
wasm_interp: create execute module 2022-11-21 19:54:48 +00:00
Brian Carroll
d038094a51
wasm_interp: tests for ValueStack 2022-11-21 19:54:48 +00:00
Brian Carroll
3b0a024a56
wasm_interp: tests for call_stack 2022-11-21 19:54:48 +00:00
Brian Carroll
08e9fb65a6
wasm_interp: create call_stack module 2022-11-21 19:54:48 +00:00
Brian Carroll
b0e89dd386
wasm_interp: new crate, with a value_stack module 2022-11-21 19:54:48 +00:00
Brian Carroll
2f709580cd
Use workspace versioning for wasm_module Cargo.toml 2022-11-21 19:54:48 +00: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
a35e912c0a
Fix wasm repl tests 2022-11-21 19:48:38 +00:00
Brian Carroll
a3cfdd478d
rename called_preload_fns to called_fns 2022-11-21 19:48:02 +00:00
Richard Feldman
52783558a5
If Content-Encoding is missing, try to infer it 2022-11-21 04:24:50 -05:00
Richard Feldman
06e8ca2bd1
Be explicit about certain Brotli encoder params 2022-11-21 03:59:53 -05:00
Richard Feldman
d0a1fa3d57
Bundle tarballs with compression after all 2022-11-21 03:57:05 -05:00
Anton-4
f32e329798
Merge pull request #4549 from roc-lang/editor_design_docs
improve/expand design docs for editor and plugins
2022-11-21 09:13:58 +01:00
Richard Feldman
a38380ec76
Remove references to obsolete .rp1 format 2022-11-21 02:58:18 -05:00
Richard Feldman
9e304e4b1e
Fix some issues with tarball generation 2022-11-21 02:51:53 -05:00
Richard Feldman
8b75545176
Separate error for multiple content encodings 2022-11-20 20:58:00 -05:00