Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/elm-tooling/elm-compiler-library

Compiler fork used in elm-language-server-haskell (archived). Use https://github.com/elm-tooling/elm-language-server instead
https://github.com/elm-tooling/elm-compiler-library

Track an index for each constructor

This will make it easier to generate integer identifiers when
generating production code (but st...

77f542d293d8b875ffb867008a990749994cc704 authored about 7 years ago by Evan Czaplicki <[email protected]>
Update Nitpick.TopLevelTypes / fit main into Opt.Graph more nicely

2c1b2e8e3bcb9a383796f8bc0383abd53f355f91 authored about 7 years ago by Evan Czaplicki <[email protected]>
Create Optimize.Module for creating object graphs

The graph nodes are set up for cyclic values, tail calls, and effect
managers. This also tracks ...

8e73b5bc281e87e3c154bd081d1328fd69fbabc4 authored about 7 years ago by Evan Czaplicki <[email protected]>
Start tracking field name counts

If we know the frequency of each field, we can assign them short/unique
names. So the 53 most us...

966edcd5ffe42c2275879a0f6606380ab52eaf0f authored about 7 years ago by Evan Czaplicki <[email protected]>
Get Optimize.Port working again

57490fde6f77a60f8bf1d3454d55b74195e8a7a3 authored about 7 years ago by Evan Czaplicki <[email protected]>
Add Elm.Name.value NOINLINE constant

d93de65de1aa7e5dc321b06d24fbc06010bda731 authored about 7 years ago by Evan Czaplicki <[email protected]>
Hook up decision tree in optimize phase

9b18f28e45e09c49f9e668e3a1570b9e287f0cc5 authored about 7 years ago by Evan Czaplicki <[email protected]>
Begin reviving the optimize phase

So far it converts everything except for case expressions. Need to make
some choices about how c...

2da8c0d81c92d128451caa3104ab343d6a788fca authored about 7 years ago by Evan Czaplicki <[email protected]>
Update pattern matches for less caching in canonical AST

086880c4bf52c54abfa3c226640fc2abc682e4b2 authored about 7 years ago by Evan Czaplicki <[email protected]>
Stop tracking uses and destructors in canonical AST

The plan is to rely on JS minifiers for inlining of single-use
variables.

Longer-term, we would...

3c0075007b55f842c2859a5aaf0164b475d8918d authored about 7 years ago by Evan Czaplicki <[email protected]>
Rename A.drop to A.toValue

76d3d24cbafdde973616f0739ed4892ec5f2ba8c authored about 7 years ago by Evan Czaplicki <[email protected]>
Add more NOINLINE names

5c0addd811d6637306a8c9a6431d87bd5343a4e8 authored about 7 years ago by Evan Czaplicki <[email protected]>
Switch canonicalization to CPS / gather usage counts for variables

The main goals here are:

1. Gather usage counts for each argument. This will make it easier to
...

ddb7c79dbcc3d440c67e239a5ad7ab278c90fb91 authored about 7 years ago by Evan Czaplicki <[email protected]>
Update exhaustiveness checks for more explicit Can.Pattern

e41ae102253f56b882eea7acb2a650f79b2414bf authored about 7 years ago by Evan Czaplicki <[email protected]>
Add info on alternate ctors to every pattern in canonicalization

bac53dee0c9834bfba5e98396ecba5f8d91eca8a authored about 7 years ago by Evan Czaplicki <[email protected]>
Add a note about (a, List a) for non-empty lists

ea5c662995b0997264032fb1b251400e70c4ba82 authored about 7 years ago by Evan Czaplicki <[email protected]>
Get Type.Constrain.Module working

This organizes all the constraints from the value declarations and the
ports/effects in the modu...

7c33c1342d3ebb030cccc744a69c7ac1e0c70322 authored about 7 years ago by Evan Czaplicki <[email protected]>
Get rid of Type.State and Solver monad

Instead of a custom Solver monad, the new Type.Solve code uses plain IO
and threads some state a...

8b03cb751e80940a0b69939174a94321d9a2893c authored about 7 years ago by Evan Czaplicki <[email protected]>
Update some uses of UF for the shorter names

d3fa29017c1d66fda8e17045a23c0e1018d0d34b authored about 7 years ago by Evan Czaplicki <[email protected]>
Use shorter names in UnionFind

They will always be prefixed, so it is silly to follow that Haskell
convention of repeating the ...

1be6293402cc82c53e40a6b8d27583ee1533c5ff authored about 7 years ago by Evan Czaplicki <[email protected]>
Update validation for new Reporting.Annotation

1aa236adc4840a42c62add68ad98f0ec07ece8d0 authored about 7 years ago by Evan Czaplicki <[email protected]>
Update type constraint generators for new Reporting.Annotation

179fad88d3161522545dec940262a7334f6cd516 authored about 7 years ago by Evan Czaplicki <[email protected]>
Update canonicalizer for Reporting.Annotation simplification

2e0beda9bc2aa1721297129524d6498ec3a0793d authored about 7 years ago by Evan Czaplicki <[email protected]>
Update parser for Reporting.Annotation simplification

212b60267f5ca34e8f4c9fda1ef83b28364eb4ac authored about 7 years ago by Evan Czaplicki <[email protected]>
Simplify Reporting.Annotation to match simpler uses elsewhere

86148e8f507e94843386c774c477951bb494b808 authored about 7 years ago by Evan Czaplicki <[email protected]>
Get Type.Unify compiling / CPS-convert the code

Rather than using a ErrorT/StateT/IO monad stack, the new code uses a
CPS’d version that only tr...

90e4d45d2034a1bc8516dc69895b2aa238ff8a0d authored about 7 years ago by Evan Czaplicki <[email protected]>
Expose Type.Type.SuperType since it moved from AST.Type

adb93faf09ee48e5593d9021e07b887af1ebcbb3 authored about 7 years ago by Evan Czaplicki <[email protected]>
No more schemes / stop using bags to track pattern bindings

I noticed that every use of CLet had a list like [Scheme] where there
was only one scheme. So ra...

afafd362a3c05bd85151d1a7e509359bd817829f authored about 7 years ago by Evan Czaplicki <[email protected]>
Improve duplicate tracking a bit.

The old version builds Bags as you go, turning it into dictionary at
the end. That means adding ...

5fcbf8647523131da2cf810f44bb6f1304777206 authored about 7 years ago by Evan Czaplicki <[email protected]>
Revamp type constraint generation

Create new “Expectation” type that holds context information about why
certain things should be ...

6709d6fbd6ef1e8516222c31f96159632e401f6f authored about 7 years ago by Evan Czaplicki <[email protected]>
Shuffle canonicalization code to simplify type constraint generation

a964796310e36efaea035c342c2a5c3f70a6de9a authored about 7 years ago by Evan Czaplicki <[email protected]>
Add Index.indexedForA for convenience

ea793f5ba0b902adaf036ba4279fa7d0d09ea480 authored about 7 years ago by Evan Czaplicki <[email protected]>
Get Type.Constrain.Expression mostly updated

Use a new format for error reporting. It provides both the Context of
the constraint and the Cat...

4386e4d4ece190eb12697e7186002cc176897a1d authored about 7 years ago by Evan Czaplicki <[email protected]>
Ensure that free type variables are computed only once

This introduces the AST.Canonical.Annotation type that holds on to all
the free type variables i...

63fb3d007a2b755785ef61829afa4bfacc4627fd authored about 7 years ago by Evan Czaplicki <[email protected]>
Add Data.Index.next so outsiders can iterate if necessary

d9985bc27f57058cdf262880e00cbf30db6bbba1 authored about 7 years ago by Evan Czaplicki <[email protected]>
Update for AST shuffle

ea77dcfa71878f23e52690e56774ccedaf323182 authored about 7 years ago by Evan Czaplicki <[email protected]>
Cut a bunch of helper functions from Type.Constraint

The code seems to be better if it is more explicit on these points.

3949a04e54f5ee86bbab9160b0be90eec02dd4df authored about 7 years ago by Evan Czaplicki <[email protected]>
Update a couple Type/ modules for AST shuffle

6e2f87e7c2581d645e5cc5d4a475c2a7d3e5f170 authored about 7 years ago by Evan Czaplicki <[email protected]>
Update validate for AST shuffle

e34add9b609d1057619513739b1a0a843b311033 authored about 7 years ago by Evan Czaplicki <[email protected]>
Update canonicalize for AST shuffle

8867611a379a341dde64bb40e01f2d31a18da819 authored about 7 years ago by Evan Czaplicki <[email protected]>
Update parser for AST shuffle

9d6d260d0f5c63b4021a2852c4b2417c5bddb68e authored about 7 years ago by Evan Czaplicki <[email protected]>
Shuffle all AST/ files around

Remove the AST.Type module and distribute it between AST.Source,
AST.Canonical, and AST.Utils.Type

77a954d74834cdcf117d88dc544a5cf6bc4b42c3 authored about 7 years ago by Evan Czaplicki <[email protected]>
Remove AST.Literal stuff from validation phase

85b2e31e4d576345a3938c0f041539841726a486 authored about 7 years ago by Evan Czaplicki <[email protected]>
Get rid of Type.Constrain.Literal

All this logic moves to constraining expressions and patterns
specifically. This makes it easier...

a4e25604db7d95844bc6ddad471e0be31a607a85 authored about 7 years ago by Evan Czaplicki <[email protected]>
Add a bunch of type primitives

e28d01ea01f9f5c59143cb937116928c50bfc888 authored about 7 years ago by Evan Czaplicki <[email protected]>
Make Type.Instantiate and Type.Constrain.Pattern more self-contained

Rather than having all the logic that uses the core code in these
modules, the special uses are ...

4a6c4a00c4eb11a51cba883b0eb1409f816596c4 authored about 7 years ago by Evan Czaplicki <[email protected]>
Make separate structure for PCtor args

a794af52b64e796b9b87c8ec33eaa47e5035935f authored about 7 years ago by Evan Czaplicki <[email protected]>
Update to use Data.Index

This change started because I could not remember if an Int was
zero-indexed or one-indexed. Now ...

800c03f964d322ef98c39b9c1f3b61796eae3bce authored about 7 years ago by Evan Czaplicki <[email protected]>
Stop recognizing locally defined binops

Binops can only be used outside of the module they are defined in.

Binops need to work exactly ...

a0ee1f545e56fd1e97d41678c12b83b6b7755d15 authored about 7 years ago by Evan Czaplicki <[email protected]>
Update canonicalization for dissolution of AST.Literal

64038dc5cb840d7b93b13a1b38ad83f17a2169b0 authored about 7 years ago by Evan Czaplicki <[email protected]>
Update parsers for dissolution of AST.Literal

New parser for numbers allocates a bit extra. Seems kind of lame. Need
to test if providing func...

6f4306108ece46162f69bc10c23fa99d4c825051 authored about 7 years ago by Evan Czaplicki <[email protected]>
Dissolve AST.Literal, be explicit in Source, Canonical, patterns, etc.

This revealed that it is pretty silly to allow floats in pattern
matches. They had that only bec...

232f7dc3f031065db099cd29513eedb99ce096de authored about 7 years ago by Evan Czaplicki <[email protected]>
Introduce Data.Index to try to reduce off-by-one errors

This also gives me an indexedMap function that I have been missing.

7c09ac2e9b8b3111c433e661d17942244347ec97 authored about 7 years ago by Evan Czaplicki <[email protected]>
No environment necessary when constraining patterns

All the type information needed is stored on the PCtor constructor
during the canonicalization p...

1762552553a1b9ef4ccdd7e1d8cde771b2cfe28b authored about 7 years ago by Evan Czaplicki <[email protected]>
cosmetic: shuffle declarations to make it read better

2e58494f3e08947ed40b5306b198e9423284c414 authored about 7 years ago by Evan Czaplicki <[email protected]>
Check in intermediate forms of error tracking code

The error types are shuffling around a bit as more things are caught
and as the code for catchin...

ad7ff0b46b657c465c2c7562c4f8ab09dd613b01 authored about 7 years ago by Evan Czaplicki <[email protected]>
Generate type constraints for patterns without any type lookups!

Moved the type instantiation code to Type.Instantiate. I suspect there
will be a couple differen...

9bdfe2bb51e1091a9722fe16b8382fe997b08a10 authored about 7 years ago by Evan Czaplicki <[email protected]>
Update for max tuple size of 3 in types

Also move arity check of unions and aliases out into Canonicalize.Type

1aaf7939649db8c3cd9dc39a08428ee4af5394ab authored about 7 years ago by Evan Czaplicki <[email protected]>
Switch Text to N.Name in Type.Type and Type.State

f3ae567a5e0ae5da0cbdb4011d757f7383e51d92 authored about 7 years ago by Evan Czaplicki <[email protected]>
Store canonical types with pattern lookup table

This means we will not need to look any types up when generating type
constraints for patterns. ...

27cee06fcfc8285ce91d17c6061b19c7f70d5b15 authored about 7 years ago by Evan Czaplicki <[email protected]>
Implement occurs check with fewer operations and allocations

The old version allocated lists of booleans, then used List.or to check
them all. This meant all...

a8bfb99e98a5171dd49cdc914df6dbb2d2382875 authored about 7 years ago by Evan Czaplicki <[email protected]>
Switch to max tuple size of 3 in Type.Type / rewrite getVarNames

The new getVarNames implementation is just in IO, not in StateT. I
suspect this will be a decent...

5bc3a7079c373a1661141ede54aa2a6051fb2eb8 authored about 7 years ago by Evan Czaplicki <[email protected]>
Limit tuple size to 3 in AST.Type

This now matches the limits in AST.Expression.Canonical

45aaf5687a75f2f98bad69a185177cf0ebe52de1 authored about 7 years ago by Evan Czaplicki <[email protected]>
Switch Type.Constraint to use Elm.Name

5a635204276ea2e3d3b2e24c75525dd61aa17063 authored about 7 years ago by Evan Czaplicki <[email protected]>
Update type constraint generation for effects

c49ac3a40d4e12b12752858e45a5b45fd8d6bb50 authored about 7 years ago by Evan Czaplicki <[email protected]>
Verify that init/onEffects/onSelfMsg exist in canonicalization

24caf2aaa981b8dc1263f49829b46a4b80bda5d5 authored about 7 years ago by Evan Czaplicki <[email protected]>
Update Type.Solve for new AST

25ea6b65b65040cd31ce2d56a1dc9da55e807f2d authored about 7 years ago by Evan Czaplicki <[email protected]>
Update Type.State for new AST

f903a1b3ca60084f73601bd006e28df9fa81bcaa authored about 7 years ago by Evan Czaplicki <[email protected]>
Update Type.Unify for new AST

Also try to reduce allocations a bit by referring to NOINLINE’d names
when doing comparable tests.

8713bd9846e2d680462dc9c4e5b9dd7d68918c5b authored about 7 years ago by Evan Czaplicki <[email protected]>
Update Type.Occurs for new AST

cac719853ce466a0da78d40a51aafeadc9a6c1cd authored about 7 years ago by Evan Czaplicki <[email protected]>
Update Type.Constrain.Literal for new AST

ddb21c5d23ce45f075d4e7b6f16d4b09dc315126 authored about 7 years ago by Evan Czaplicki <[email protected]>
Define NOINLINE versions of Int, Float, etc. in Elm.Name

Goal is to avoid allocating new versions.

07f61dcaaba88bea3c94606457dbfeda1c3ff206 authored about 7 years ago by Evan Czaplicki <[email protected]>
Move code for instantiating source types into Type.Type

The new implementation has a tail recursive gatherFreeVars function.
The idea is that you can av...

40e0c37cf8d0bab433b2335ecf5cfdb7bd0bd746 authored about 7 years ago by Evan Czaplicki <[email protected]>
remove unused import

4d6851863793b06386a49aac6c9153e96e50dd61 authored about 7 years ago by Evan Czaplicki <[email protected]>
Give warnings on unused bindings and variables

dfaef1811281c743b3a2734a9fea69e75af43d85 authored about 7 years ago by Evan Czaplicki <[email protected]>
Get rid of some ModuleName.Raw references

3592fd889febdec712dc0cd77b4c5f9847720c74 authored about 7 years ago by Evan Czaplicki <[email protected]>
cosmetic: change up style of binary serialization code for AST.Kernel

6a866cc0a1a9c9695d024272c15a4222cf4a3381 authored about 7 years ago by Evan Czaplicki <[email protected]>
Verify that port types can actually pass between Elm and JS

32834fa59ac6323a44a6c5a935d608ce3f9c22ad authored about 7 years ago by Evan Czaplicki <[email protected]>
Remove Var.Canonical

The “home” of any particular variable or type is tracked in the AST
directly now.

fe6f91baa77cf4238ef359f1e28a8086a7a49da0 authored about 7 years ago by Evan Czaplicki <[email protected]>
Create module names in the AST.Module.Name module

6f312254a65bf2de9e1c22f6abfac6d1fa080245 authored about 7 years ago by Evan Czaplicki <[email protected]>
Get rid of AST.Literal.glTypeToVar

6a46ae32b98d9526c52af70391206b5af21d9a26 authored about 7 years ago by Evan Czaplicki <[email protected]>
Update warnings for unused arguments, bindings, etc.

e92c8269d9dddb243d998f31b218b71ad12c2195 authored about 7 years ago by Evan Czaplicki <[email protected]>
Fix copy/paste error in Bag implementation

Thanks to warning about unused variables.

652b118f50e937b73af42d693a9a221d600a2200 authored about 7 years ago by Evan Czaplicki <[email protected]>
Remove some Docs/ stuff that's not necessary anymore

The changes to the AST mean that this happens during validation. It is
definitely simpler now, a...

f1e29e923db1d03a5e9e3f9000433ce5fab78e67 authored about 7 years ago by Evan Czaplicki <[email protected]>
Get canonicalization of modules compiling

c215b4fbf2d9e30a705602bd8437f688dbe48718 authored about 7 years ago by Evan Czaplicki <[email protected]>
Expose a bit more about reporting Results and Regions

4c79ddd25fcf7bc7b0a75b605d762bb99a88d83a authored about 7 years ago by Evan Czaplicki <[email protected]>
Get canonicalization of module going again

This one allows cyclic values in top-level declarations as long as the
cycle includes at least o...

fcbda99161598498edc6e1560d556fc5120e546b authored about 7 years ago by Evan Czaplicki <[email protected]>
Add code for canonicalizing case expressions

b49e8f7918590b227df09606e674a1281603605a authored about 7 years ago by Evan Czaplicki <[email protected]>
Get canonicalization of binop sequences working again

8b8849429565938bdfa40f40bb45d973090fee03 authored about 7 years ago by Evan Czaplicki <[email protected]>
Get a decent chunk of expression canonicalization compiling

Some highlights include:

- The “definition sorting” moves into expression canonicalization.
- C...

bfb8eca2a73343c4400276460fcb99190123dc87 authored about 7 years ago by Evan Czaplicki <[email protected]>
Update parser for the AST.Pattern move

c62990e1285703f92e7bf38bcc6e0dcd0cf15702 authored about 7 years ago by Evan Czaplicki <[email protected]>
Thread more region info through validation

a561bf35c11fc660a5dbfa2984ee5fb1ebbf9bfe authored about 7 years ago by Evan Czaplicki <[email protected]>
Move AST.Patterns into the phased expression AST

1b6b47a99ca423235cbbb7e3a7b067ffdc7598be authored about 7 years ago by Evan Czaplicki <[email protected]>
Have a list of patterns in Src.Lambda AST nodes

e55ba2b02c5a5d92fdba44babeb067aad41ad4e7 authored about 7 years ago by Evan Czaplicki <[email protected]>
No more Bool literals / add locations to more pattern vars

02a7ce05810ffa1219c9f2bb39a6348d5d360ee7 authored about 7 years ago by Evan Czaplicki <[email protected]>
Move Bag and OneOrMore to Data/ directory

c19392fbe3489cffc2ea2b760af9d579ae412bb8 authored about 7 years ago by Evan Czaplicki <[email protected]>
Get Parse.Kernel compiling again

Mostly updating for changes in the AST code

38bfa1b956766f521aa478409453aceb119da22c authored about 7 years ago by Evan Czaplicki <[email protected]>
Switch to N.Name in more cases

6aa367f443fc970c9d28279417d872609f5ee3b8 authored about 7 years ago by Evan Czaplicki <[email protected]>
Get Parse.Kernel compiling again

Stop supporting object fields that are quoted or numbers. Just use
normal names.

14adb8ef625be750a76d0652a373583e9003cb30 authored about 7 years ago by Evan Czaplicki <[email protected]>
Simplify validation phase a bunch

Things that moved to canonicalization include:

- Checking for free variables in unions and alia...

5fab52a59c2b26cfdf176275fc79043b0c0a75a1 authored about 7 years ago by Evan Czaplicki <[email protected]>