Rob Rix
7b02e3e64f
Correct the EnvironmentError application.
2018-05-28 15:30:19 -04:00
Rob Rix
f0c220906a
Partially apply Eff in the tests.
2018-05-28 14:48:00 -04:00
Rob Rix
cc02cfd8eb
AbstractIntro is pure.
2018-05-28 14:47:42 -04:00
Rob Rix
89b90496b7
Don’t qualify this name.
2018-05-28 14:47:20 -04:00
Rob Rix
b3b47a34df
🔥 Goto.
2018-05-28 14:42:46 -04:00
Rob Rix
282c02fbbd
Embed the evaluating action into the closure body.
2018-05-28 14:11:08 -04:00
Rob Rix
a01e723b31
Run ValueErrors in TermEvaluator.
2018-05-28 09:55:01 -04:00
Rob Rix
015b74cf41
Give Value a term type parameter once more.
2018-05-28 09:35:42 -04:00
Rob Rix
a2135fda74
Don’t use overloaded lists.
2018-05-28 09:35:03 -04:00
Rob Rix
2993c3588c
Correct the specs.
2018-05-28 08:54:33 -04:00
Rick Winfrey
e74bfca4bd
Assign basic type synonym declarations
2018-05-25 01:57:20 -05:00
Rick Winfrey
ea18738a28
Assign string and array literals
2018-05-25 01:57:20 -05:00
Rick Winfrey
d86a41f17c
Assign character literals
2018-05-25 01:57:20 -05:00
Rob Rix
127ed8a26a
Merge branch 'master' into rearrange-value-ref-and-friends
2018-05-24 12:23:30 -04:00
Rob Rix
5ac256e340
🔨 fix the type in the spec
2018-05-24 12:09:20 -04:00
Rob Rix
eeb604569d
Merge branch 'master' into decompose-values
2018-05-24 09:11:19 -04:00
Rick Winfrey
3d70af57a4
Add blank file test fixture
2018-05-23 15:59:32 -07:00
Rick Winfrey
32619a8124
Add literal test fixtures
2018-05-23 15:55:26 -07:00
Patrick Thomson
7da61bd4c9
Merge branch 'master' into strict-equals
2018-05-23 11:33:32 -04:00
Patrick Thomson
eaa54a3230
Add strict-equality function.
...
TypeScript, JavaScript, and PHP support an === operator, which
corresponds to strict equality (usually the equality you want). I've
added a constructor to Comparison that takes care of this. Actually
implementing non-strict equality for the above languages will have to
wait until we can build behavior a la carte.
I chose not to add Ruby's case-equality operator, though it uses ===,
since the behavior is so different. (For example, a === a is not
always true over Ruby's ===).
2018-05-23 11:28:31 -04:00
Rob Rix
115e887739
Merge branch 'master' into decompose-values
2018-05-23 09:59:16 -04:00
Patrick Thomson
f563a2c808
forgot a do
2018-05-22 17:25:17 -04:00
Patrick Thomson
c8d5a8d231
add test for cancelling in-flight parsers
2018-05-22 17:01:17 -04:00
Patrick Thomson
949b9be418
add spec
2018-05-22 16:53:03 -04:00
Rob Rix
2cb425dbb5
Merge branch 'master' into decompose-values
2018-05-22 15:43:51 -04:00
Rob Rix
fb5b903af7
Merge branch 'master' into decompose-values
2018-05-22 08:44:54 -04:00
joshvera
dd123a0181
Merge remote-tracking branch 'origin/master' into grpc-server
2018-05-21 13:55:15 -04:00
joshvera
378dad0d69
Merge remote-tracking branch 'origin/master' into grpc-server
2018-05-21 12:33:22 -04:00
Timothy Clem
42af0faae6
New approach for linting
2018-05-21 08:17:11 -07:00
Rob Rix
18b2cfc89f
Merge branch 'master' into decompose-values
2018-05-18 14:14:55 -04:00
Rob Rix
5504b0b673
Add doctests for the Show output.
2018-05-18 14:03:42 -04:00
Rob Rix
c45802a809
Reformat defaultFiles.
2018-05-18 13:20:56 -04:00
Rob Rix
109dbd3b44
Fix the typescript spec.
2018-05-18 13:07:37 -04:00
Rob Rix
2ba726cb28
Fix a dodgy import.
2018-05-18 13:06:49 -04:00
Rob Rix
75d83155ec
Re-export the Name module.
2018-05-18 13:06:35 -04:00
Rob Rix
81951d7bcc
Fix the Listable instance for Name.
2018-05-18 13:05:46 -04:00
Rob Rix
ca6b32378e
Merge branch 'master' into allocator-effect
2018-05-18 11:09:20 -04:00
Josh Vera
053a158e59
Merge branch 'master' into update-fastsum
2018-05-18 10:44:08 -04:00
Rob Rix
6f3698122c
Merge branch 'master' into allocator-effect
2018-05-17 16:47:24 -04:00
Rob Rix
ad3f63ad74
Merge branch 'allocator-effect' into decompose-values
2018-05-17 16:46:58 -04:00
Ayman Nadeem
8aad81b775
Merge branch 'master' into java-assignment
2018-05-17 10:42:00 -07:00
Timothy Clem
c2851c9d8a
Merge branch 'master' into package-dot-json-parsing
2018-05-17 08:02:29 -07:00
Timothy Clem
1cbccd5557
Merge branch 'master' into python-relative-imports
2018-05-17 07:55:33 -07:00
Rob Rix
e9238d0ec7
Merge branch 'master' into package-dot-json-parsing
2018-05-16 19:12:08 -04:00
Rob Rix
19bc0ab637
Merge branch 'master' into allocator-effect
2018-05-16 18:33:00 -04:00
Patrick Thomson
dafb3edaf5
Merge remote-tracking branch 'origin/master' into update-fastsum
2018-05-16 18:26:43 -04:00
Patrick Thomson
322f348103
inj -> inject
2018-05-16 18:25:02 -04:00
Rob Rix
101798fd39
Update a bunch of fixtures.
2018-05-16 16:38:40 -04:00
Rob Rix
06047bc31f
Unify them types.
2018-05-16 16:21:02 -04:00
Rob Rix
a918420726
diffWithParser needs a Hashable1 instance.
2018-05-16 16:19:18 -04:00
Rob Rix
02947bf61e
Fix the RWS spec.
2018-05-16 16:15:06 -04:00
Patrick Thomson
6b0198cb00
Remove otiose -Sum prefixes from all Data.Sum operations.
...
There are no modules where we use both Union.inj and Sum.injectSum; as
such, it seems clumsy for such ubiquitous functions as inj and prj to
have such long names when there is no ambiguity. This restores the
codebase to much how it looked before we switched back to a richer
Data.Union.
2018-05-16 15:27:08 -04:00
Timothy Clem
6517f12684
Merge remote-tracking branch 'origin/master' into python-relative-imports
2018-05-16 12:25:22 -07:00
Timothy Clem
a60ed7bc16
Merge remote-tracking branch 'origin/master' into package-dot-json-parsing
2018-05-16 12:07:13 -07:00
Timothy Clem
7137c057b4
Fix up example a bit
2018-05-16 10:43:38 -07:00
Rob Rix
6ee5cabdf8
Run allocator effects in the evaluator spec.
2018-05-16 13:43:14 -04:00
Timothy Clem
aa9eb68045
Fully construct PackageInfo here
2018-05-16 10:34:17 -07:00
Timothy Clem
453f60ee36
Some example js code for various module require/resolution options
2018-05-16 10:21:24 -07:00
Rob Rix
e8aa1a4da7
Revert "Move Precise & Latest into their own module."
...
This reverts commit 318ed8510aeb31ae892652685771bdba810d2df4.
2018-05-16 13:18:25 -04:00
Rob Rix
680336057d
Move Precise & Latest into their own module.
2018-05-16 11:53:24 -04:00
Timothy Clem
f81ea4bff5
s/File/Project b/c that makes more sense to me
2018-05-16 08:38:00 -07:00
Rob Rix
47e92a766f
Merge remote-tracking branch 'origin/master' into fix-abstract-semantics
2018-05-15 18:47:47 -04:00
Rob Rix
788618a9d0
Fix extracting values from Latest in the tests.
2018-05-15 17:43:57 -04:00
Timothy Clem
62956f78d7
Print and actually return a string
2018-05-15 11:57:18 -07:00
Timothy Clem
27ce720904
Test out relative python imports
2018-05-15 11:26:16 -07:00
Rob Rix
3ab781ea48
🔥 all the constraining functions since we can use type applications instead.
2018-05-15 13:51:07 -04:00
Rob Rix
dcaad09deb
Fix the specs.
2018-05-15 12:58:05 -04:00
Rob Rix
367982bc8d
Don’t use SomeRenderer in the CLI spec.
2018-05-14 18:44:19 -04:00
Rob Rix
84ea29a60b
Fix the tests.
2018-05-14 18:39:41 -04:00
joshvera
fb5c4c039d
hide error
2018-05-14 16:19:59 -04:00
Rob Rix
f047b57ecc
Encoding order is significant.
2018-05-14 16:18:57 -04:00
Rob Rix
03749d008e
We can just say diff now.
2018-05-14 16:11:31 -04:00
Rob Rix
5bae88724b
Move the diffTermPair tests into the interpreter spec.
2018-05-14 16:09:39 -04:00
Rob Rix
1128537b6a
Correct a bunch of fixtures.
2018-05-14 10:50:57 -04:00
Rob Rix
75ab25d443
Generalize the type of toOutput.
2018-05-14 10:31:40 -04:00
Rob Rix
b979e9757c
Run the builders.
2018-05-14 10:28:01 -04:00
Rob Rix
fc70382d5b
Correct the handle types.
2018-05-14 10:27:58 -04:00
Rob Rix
5813258037
Add a runBuilder helper.
2018-05-14 10:27:45 -04:00
Rob Rix
0d0aeafdc5
Add an openFileForReading helper for the tests.
2018-05-14 10:23:29 -04:00
Rob Rix
29be8a5243
Provide a helper which builds bytestrings.
2018-05-14 10:20:13 -04:00
Rob Rix
29af5d4d3a
Build the bytestrings.
2018-05-14 10:18:52 -04:00
joshvera
9e2b7725a6
Merge origin/master
2018-05-11 16:37:04 -04:00
Rob Rix
a9d3b29e02
We expect a ByteString here.
2018-05-11 15:31:28 -04:00
Rob Rix
9ed1bc4a38
ByteStrings.
2018-05-11 14:59:50 -04:00
Rob Rix
5497b9a2a4
Swap the Heap location/cell params.
2018-05-11 08:36:45 -04:00
Rob Rix
6ba840e90b
Go back to simple address types.
2018-05-11 08:35:43 -04:00
Rob Rix
67892e9cf1
Define Precise as a GADT indexed by its cell type.
2018-05-10 19:27:20 -04:00
Rob Rix
2abfd92678
Bump effects for https://github.com/joshvera/effects/pull/43
2018-05-10 18:27:10 -04:00
Rob Rix
dcad4d852c
Parameterize Heap by the cell type.
2018-05-10 12:31:12 -04:00
Rob Rix
716e225da9
Test that puts ends up in the traces.
2018-05-10 11:03:42 -04:00
Rob Rix
13660b9e9d
Test for expected symbols, not exact symbols.
2018-05-10 10:59:38 -04:00
Rob Rix
2410387e97
Allow the tests to examine the traces.
2018-05-10 10:58:24 -04:00
Rob Rix
75d2c50589
Test the results of cross-module function calls.
2018-05-10 10:26:07 -04:00
Rob Rix
c2f48fb982
🔥 the ns/addr conveniences.
2018-05-10 10:11:34 -04:00
Rob Rix
4fca683eae
Test for the presence of the desired symbols rather than the exact list.
2018-05-10 10:10:57 -04:00
Rob Rix
ae7ee6e860
Test Go environments/heaps against the names.
2018-05-10 10:07:11 -04:00
Rob Rix
5af09d94e1
Test PHP environments/heaps against the names, not addresses.
2018-05-10 10:03:59 -04:00
Rob Rix
69bd2c0af5
Test Python environments/heaps without encoding addresses.
2018-05-10 09:59:54 -04:00
Rob Rix
9ec588ed3c
Use the shared helpers for TypeScript.
2018-05-10 09:59:31 -04:00
Rob Rix
6e37f24cee
Define a helper to take namespaces apart.
2018-05-10 09:58:38 -04:00
Rob Rix
30a85b576d
Define a helper to dereference qualified names in values.
2018-05-10 09:55:11 -04:00
Rob Rix
821691549e
Test the bound names, not their addresses.
2018-05-10 09:28:11 -04:00
Rob Rix
8b8f3007cf
Test the imported names, not the prelude names.
2018-05-10 09:08:12 -04:00
Rob Rix
76a40939d6
Test the bound names.
2018-05-09 22:04:52 -04:00
Rob Rix
27a25d9a45
Type applications.
2018-05-09 22:04:46 -04:00
Rob Rix
91ca0e1aba
Run Gotos via a newtype to break the cycle in the effects types.
2018-05-09 21:30:34 -04:00
Rob Rix
924aa3e243
Correct the corpus for the new line directive syntax.
2018-05-09 15:24:42 -04:00
Rob Rix
c0993c63c9
Test our evaluation of __LINE__.
2018-05-09 15:23:52 -04:00
Rob Rix
3cbf66c57e
🔥 TermEffects.
2018-05-09 12:39:22 -04:00
Rob Rix
f18d066c88
🔥 the Term newtype.
2018-05-09 12:36:48 -04:00
Rob Rix
d02fdb419a
Only export spec.
2018-05-09 12:36:40 -04:00
Rob Rix
4dca1c121e
🔥 the term parameter to Evaluator.
2018-05-09 12:35:01 -04:00
Rob Rix
3948f74810
Correct the type of the module table effect.
2018-05-08 16:46:17 -04:00
Rob Rix
fb04c57bdf
Use a visible type application to inject the environment error.
2018-05-08 12:03:08 -04:00
Rob Rix
2aae3dbdd3
Allow runGoto to return its jump table.
2018-05-08 11:10:35 -04:00
Rob Rix
97915e1410
Rename lambda to closure.
2018-05-08 10:54:32 -04:00
Rob Rix
d9084f9f45
lambda takes the set of free variables as a parameter.
2018-05-08 10:54:04 -04:00
Rob Rix
5a4e6cb0b0
Merge branch 'evaluator-dsl' into evaluate-closures-without-terms
2018-05-08 10:40:41 -04:00
Rob Rix
8881dc0284
Fix an ambiguous reference to runM.
2018-05-08 10:40:25 -04:00
Rob Rix
65bcc461fc
Merge branch 'evaluator-dsl' into evaluate-closures-without-terms
2018-05-08 10:36:04 -04:00
Rob Rix
c153815859
Merge branch 'musical-chairs,-evaluator-edition' into evaluator-dsl
2018-05-08 10:32:51 -04:00
Rob Rix
eacb5b47d7
Implement goto using Goto effects embedding evaluators.
2018-05-08 10:19:50 -04:00
Rob Rix
2b2a6f0cd8
Specialize ValueError to Value.
2018-05-08 09:05:43 -04:00
Patrick Thomson
d12ecb8387
move the trace runners to Control.Effect
2018-05-07 17:22:26 -04:00
Rob Rix
b66ea73427
Reassociate errors in the specs.
2018-05-07 16:56:40 -04:00
Rob Rix
d9e76fb2c5
Test that we can call functions.
2018-05-07 16:06:21 -04:00
Rob Rix
c05884195d
Add environment errors to the mix.
2018-05-07 16:06:04 -04:00
Rob Rix
de1a8e1164
Clean up a redundant pure.
2018-05-07 16:05:55 -04:00
Rob Rix
b589d4f7d0
Define a FreeVariables instance for Term.
2018-05-07 16:05:27 -04:00
Rob Rix
b1dea9c5f0
Switch variable over to EnvironmentError.
2018-05-07 15:56:47 -04:00
Rob Rix
ca778fd76e
We don’t need to constrain the term type any more.
2018-05-07 15:25:05 -04:00
Rob Rix
4f64d95a51
🔥 redundant language extensions.
2018-05-07 15:21:41 -04:00
Rob Rix
28eec7a7ec
Lift TermEvaluators to Subterm evaluators.
2018-05-07 15:19:57 -04:00
Rob Rix
a4e823681f
Define a TermEvaluator synonym.
2018-05-07 15:19:36 -04:00
Patrick Thomson
50ea7d1a09
remove duplication
2018-05-07 15:13:40 -04:00
Rob Rix
3b4b953506
Run evaluators in IO.
2018-05-07 15:13:01 -04:00
Rob Rix
1bd817bc76
Test that we can construct integers.
2018-05-07 15:10:41 -04:00
Rob Rix
980fd74aed
Define an evaluator helper.
2018-05-07 15:10:11 -04:00
Rob Rix
47d48d695e
Add types for terms, values, and the effects for evaluating terms.
2018-05-07 15:09:50 -04:00
Patrick Thomson
110365733c
fix specs
2018-05-07 14:39:01 -04:00
Rob Rix
c427be3670
Stub in a spec for Evaluator.
2018-05-07 14:21:05 -04:00
Rob Rix
ca5ca629dc
Run the analysis.
2018-05-06 17:38:04 -04:00
Rob Rix
2fa602c98f
Fix stale references to interpret.
2018-05-06 17:37:44 -04:00
Rob Rix
a23bc350da
Constrain the specs to Value Precise.
2018-05-06 17:36:33 -04:00
Rob Rix
e638fb4715
Update the specs to use a testEvaluating analysis.
2018-05-06 17:30:07 -04:00
Rob Rix
b6709b4da2
Use the correct injection/projection functions in the tests.
2018-05-06 17:23:39 -04:00
Rob Rix
da3ddd2b17
Fix the specs.
2018-05-02 16:10:56 -04:00
Rob Rix
243fb331fc
Fix stale references to inj in the tests.
2018-05-02 15:55:10 -04:00
Rob Rix
911111987a
Return to piecemeal state effects, and combine them in Evaluating.
2018-05-02 15:54:11 -04:00
Rob Rix
152fe6a6a8
Fix the ambiguity around Sum.
2018-05-02 13:14:51 -04:00