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

Get type checks on effect modules working properly

Now it properly introduces type variables with CLet and checks cmdMap
and subMap

ab555e721fe88ab2f91c81878a0963104b14a4d5 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Properly unify Unit1 types

e1e19d58b370f5ca770d6e6a732eb3dc5a6bdaf8 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Fix little typos in new record unification code

70c7edfc919611902c572ca3e4e914e065177a54 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Fix type constraint generation for record accessors

d89ada275ff75c717814337f721e791dee637014 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Localize headers into the correct rank!

This was very tricky. All of the variables need to be allocated into
the latest rank, and this t...

124870483bf8c0916d0afeb19df71b9659765120 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Stop allocating on Type.Solve.restore

The old version would rebuild the Content for each var. The new one
just traverses the structures.

6140a9d306ee8b472e81f5552904489c554ac84c authored almost 7 years ago by Evan Czaplicki <[email protected]>
Start adapting Reporting.Helpers from Text to Name values

a93092286aeb31e5b713c455d2a24ec43db9229f authored almost 7 years ago by Evan Czaplicki <[email protected]>
Make Render.Code exports explicit / add dummy renderPair function

3f3ff8d52c1394ec3b23bd9d28b89a94f9c6ab15 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Put the canonicalization errors in an intermediate state that still works

bc755bbe8025661c9505dc49a2015ef6def65993 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Change the nature of a Report

The idea to handle JSON is to just give the full text of the error
message rather than breaking ...

7130d19c63c2103c1a871a0ec99c757d6788d410 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Rethink the error messages for exhaustiveness checks

For example, when there is a pattern match in a function arg, but the
type has other options it ...

077322c887c1ba7242853cdfc70029a17741a22f authored almost 7 years ago by Evan Czaplicki <[email protected]>
Update docs errors for new docs processing code

9cc5cd8a7c9ae96d811e7c8c2f0cf75158cf3ab7 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Shuffle things so Error.Syntax focuses more on parsing problems

fe2a01c71fb5498245c186050f15bc3de8c0f24b authored almost 7 years ago by Evan Czaplicki <[email protected]>
Limit what is exposed by Reporting.Region

b53794626edbbcf40d874735876bde5a3ba35a0a authored almost 7 years ago by Evan Czaplicki <[email protected]>
Begin revamp of type error messages

There is now a bit more metadata about (1) the expression that
generated the constraint and (2) ...

5366b91374235bf84fad1f349098abda4654072f authored almost 7 years ago by Evan Czaplicki <[email protected]>
Get rid of Type.Constraint.Category that is not in use anymore

28a748b63615ecade7e737e5df45a1c1b7926c51 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Add Elm.Name.startsWith for finding comparableX names

990ec7af13da0555530383ccf25333f2118aca58 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Minor fix to match optimized AST changes

b42fe5a5eb3d734a2e179a0cb2e3af79a4d930a0 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Generate JS to handle enums and unboxing

a2e92ddc247b9bbf4bfdded6fbec1fb7076db3a5 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Handle enums and boxed values in optimized AST

The main thing that was tricky here was that the way I destructured
patterns needed to change. B...

833ed96040f505187e37ecdf8c597e0689dd070c authored almost 7 years ago by Evan Czaplicki <[email protected]>
Make sure String and Char types are available by default

a740aac031aefb675eb4b02d911c9f97317991ff authored almost 7 years ago by Evan Czaplicki <[email protected]>
Fix bugs: List as built-in type and ignoring kernel imports

bf133d3514d78fc02d6a7bc36eab661d18b836f8 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Have fewer initial pool slots

I believe it would require 8 levels of nested lets to use up all the
initial slots. The logic wi...

826b7ff28ff93847bf38eeaa7087a373e351222a authored almost 7 years ago by Evan Czaplicki <[email protected]>
Actually pop the pool before solving content

This is really important for making sure there’s not a bunch of
pointless garbage kept around! J...

466a5b53806876ab439467c558e5d852e83c31b1 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Rename to CLocal and CForeign / track variable names a bit different

1966810d849063e6162a1f3a83519f4fae9326d5 authored almost 7 years ago by Evan Czaplicki <[email protected]>
cosmetic: make case branches more consistent

2a2e58c3289274df7b7696fd49ba958c6427423b authored almost 7 years ago by Evan Czaplicki <[email protected]>
Minor update for recent AST changes

71ee7d2ca96bf1a5c8c89b59a458724f0400702d authored almost 7 years ago by Evan Czaplicki <[email protected]>
Fix bug in parsing (+) in import/exposing syntax

557d518070d3e7ca36cc854866970adeb73b9fc0 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Update Nitpick from using Can.CtorAlts to using Can.Union

The necessary metadata just got centralized into an already existing
thing.

7149cfe3e235e47da72ed3c61ee454911e2baaff authored almost 7 years ago by Evan Czaplicki <[email protected]>
Minor updates needed because of AST changes

d78e502a976acbba5b58ea104227b87ae5e9f006 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Handle qualified/unqualified AST nodes in canonicalization

This commit also introduces AST.Canonical.CtorOpts which caches which
constructor optimizations ...

decec2df105433b0e8d540674cbfd3b42df6f936 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Change the canonicalization Env for new AST var info

Now that the AST tracks whether something is qualified or not, it makes
sense to change the stru...

a57d82912601e453bab49140e109a0af7edf0a7d authored almost 7 years ago by Evan Czaplicki <[email protected]>
Update validation phase for new AST var info

450b5e70fd8b8958087e7515066a8dcdd7fd293b authored almost 7 years ago by Evan Czaplicki <[email protected]>
Keep finer distinctions between variables in the AST

Track qualified and unqualified variables as separate AST nodes, and
mark whether the names are ...

50a626598203075c9df0445d6cfcf4a254932bc7 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Introduce Elm.Name.fromForeignPtr

This way when the Elm.Name implementation gets optimized, there won’t
be any unneeded allocation...

1e6121ab79f82a98d504d88cdfbd29377863ba13 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Fix code gen bug for OpStrictNEq

I don’t think the compiler generated this operator for anything in any
prior version, which woul...

84a9cdf36b35d7614017089e54dd21d6a557dc30 authored almost 7 years ago by Evan Czaplicki <[email protected]>
Expose Nitpick.PatternMatches.Literal for errors

7dfbc301d2715d355c595fcb241a737850f9dbed authored about 7 years ago by Evan Czaplicki <[email protected]>
Try to produce better errors from unification / fixes / optimizations

The root motivation was like this:

1. I want as much control as possible over error messages.
2...

51d0bd4c01961d125b415c25dcf9d35503d9d40b authored about 7 years ago by Evan Czaplicki <[email protected]>
Get cleaner errors on cyclic values

The problem was handling destructuring bindings, like (let (x,y) = … in
…)

Before I generated a...

8caab554f08118be0c68ae912908373872e26f53 authored about 7 years ago by Evan Czaplicki <[email protected]>
Add additional metadata for TooManyArguments error

b371450b28641ef1fc3125a09909454fb12b6a5b authored about 7 years ago by Evan Czaplicki <[email protected]>
Add an explanation of why Elm does not have implicit casts

I really wonder how much of the language can be taught in these hints…

2deedfb4b7b7df8a8896379586812cb18e1cdc95 authored about 7 years ago by Evan Czaplicki <[email protected]>
Track info for better shadowing error messages

Primarily this starts tracking the location of any given local
definition. That way, if there is...

732b5d1f98252ed1c6a4536aca7f9a88ad190f9b authored about 7 years ago by Evan Czaplicki <[email protected]>
Write a bunch about why shadowing is not permitted

0667191c60b3e44f1100c47d8faf1e3082b181a5 authored about 7 years ago by Evan Czaplicki <[email protected]>
Stop doing an extra `getPosition` call

Probably not a big deal. Possibly the (>>=) usage is not as good.
Unclear.

The main thing is th...

eb5da5e6a66f5df410203f81323014afee3fc8d0 authored about 7 years ago by Evan Czaplicki <[email protected]>
Check for reserved words when parsing qualified lowercase names

In the case that there is no prefix, you need to detect reserved words!

2d247329cb7329394fd1760bc8b2e2cf6e159e2e authored about 7 years ago by Evan Czaplicki <[email protected]>
Improve the BadUnderscore error message

c0800bc99ffc28febfe70b0cd8ded27d9905ccfd authored about 7 years ago by Evan Czaplicki <[email protected]>
cosmetic: normalize names and spaces a bit

510f529b1e8b7df4038c9a1dd62a551845e73283 authored about 7 years ago by Evan Czaplicki <[email protected]>
Add cases for unifying tuples

66183f1bb927ab3d6be3d44d787b05cd1e0ab55c authored about 7 years ago by Evan Czaplicki <[email protected]>
Trim the public API of Elm.Compiler for now

Will come back and add things when those things actually work.

9b630c1cb59834261546341efe303c468b2b433f authored about 7 years ago by Evan Czaplicki <[email protected]>
Make error message name more clear

This error is for when folks say (Just) rather than (Maybe(..))

It does not mean it wasn’t foun...

78f5dc4d79a328f37bdad08e44e3e0e25aafdfe2 authored about 7 years ago by Evan Czaplicki <[email protected]>
Improve the error message for BadNumberDot

5d3f9450c98be6c8fa9f468ccaf12c910bc37043 authored about 7 years ago by Evan Czaplicki <[email protected]>
Allow ZERO or more infix ops in core libraries

The other version allowed ONE or more.

bc1f2f0676969a9f1da67bb97c02e2db07bca7a9 authored about 7 years ago by Evan Czaplicki <[email protected]>
Don't need the export region for certain docs errors

126a0e36ceecdc83cec43e6302e35dd2ac15260a authored about 7 years ago by Evan Czaplicki <[email protected]>
Stop tracking category of dups

Turns out it doesn’t make that one error message better, so it’s better
to not allocate a spot f...

ae0bf2b5ec4b21433eebbf16b42e6f9f6d2354fc authored about 7 years ago by Evan Czaplicki <[email protected]>
Remove unused export

d91a33e20c16a65b26f336ed8c718e55148cf373 authored about 7 years ago by Evan Czaplicki <[email protected]>
Add parser for infix declarations

05a3fecf80e8f7a3da1301d3fdb54129d428fd29 authored about 7 years ago by Evan Czaplicki <[email protected]>
Add Elm.Package.isKernel / shuffle definitions around

63e885c7bf19f8ec7d83d5fdbece02a5d6562955 authored about 7 years ago by Evan Czaplicki <[email protected]>
Fix an infinite loop

Man, wouldn’t it be cool if the compiler would detect this and tell you
about it at compile time :P

8c63b57405eab86e582acbdb79a4b9607e640106 authored about 7 years ago by Evan Czaplicki <[email protected]>
Have the REPL parser expose Names rather than Strings

06847f67b4dc3da7a6a14acc5d68d7a450f3debb authored about 7 years ago by Evan Czaplicki <[email protected]>
Give more flexibility in adding indexes to names

a97552b8d0ae87d048bbd26ce40032bec1b31ccc authored about 7 years ago by Evan Czaplicki <[email protected]>
Fix bug in computing row/col for keyword and symbol parsers

06e7d8ff3350a35e99bd74cac5c109f2c10b72ea authored about 7 years ago by Evan Czaplicki <[email protected]>
Make public API for generating JS nicer

3f20280a21093a918264e39ea8983a15d7ecad4c authored about 7 years ago by Evan Czaplicki <[email protected]>
Move Elm.Interface out of public API

dc81293c4bc0ed2f8b9aed6cdf8fa88861ccd0a5 authored about 7 years ago by Evan Czaplicki <[email protected]>
Find way to quote exported names and make code smaller

In the olden times, we had a series of definitions like this:

var Elm = {};
Elm[‘Thing’] = Elm[...

422e2506ebee52d89bf59eca391b536346a562a8 authored about 7 years ago by Evan Czaplicki <[email protected]>
Only provide the debug metadata when in debug mode

This way you do not get a bunch of unnecessary stuff in prod mode.

f8ace43aa589a48f9fff33df4f36df11ff5e1546 authored about 7 years ago by Evan Czaplicki <[email protected]>
Generate debug metadata in the right format

0da3204c4d72ad4d4dd5cd5e0767538d32d1f499 authored about 7 years ago by Evan Czaplicki <[email protected]>
Make code gen of `main` values easier

Figure out the trie structure of modules, generate the Builders for
anything that needs to know ...

247359cc0bfce8b9f5713f5dfe190dd20f241f52 authored about 7 years ago by Evan Czaplicki <[email protected]>
Get rid of (<|) and (|>) in Elm.Utils

I don’t really like having this Elm.Utils file in the first place, so
the goal would be to remov...

ba4c3dfd7c83851c68ee782e3c5a5d697e89f19d authored about 7 years ago by Evan Czaplicki <[email protected]>
Update public API a bit

3b7f6ff7b1cdbb2a6d32e1e54a39f11ae89d8df2 authored about 7 years ago by Evan Czaplicki <[email protected]>
Generate ElmVar and JsVar KChunks properly

474ec0d48e31c340c0d616b00516d51772974856 authored about 7 years ago by Evan Czaplicki <[email protected]>
Detect kernel variables in canonicalization

9eb1ab6c387ee7bd7ce6218cd8cb95728487fb96 authored about 7 years ago by Evan Czaplicki <[email protected]>
Fix kernel import processing / assign Elm vs JS vars properly

The new version needs to know which canonical modules are available.
From there it can figure ou...

27ffde4b7f724028b281d7fe51514392df1fffee authored about 7 years ago by Evan Czaplicki <[email protected]>
Add binary instances for Opt.Graph / improve KChunk representation

The old KChunk did not distinguish between Elm variables and kernel
variables. This is necessary...

da57d72dab42afd2739fcab65c0d0639ee529434 authored about 7 years ago by Evan Czaplicki <[email protected]>
Update .cabal for all the module structure changes

92b06dee0403733438fb9d11b7a2cc28bfd3c5f2 authored about 7 years ago by Evan Czaplicki <[email protected]>
Remove wrappers for errors and warnings

I believe this was nice because it hid the A.Located part. Now that
that is part of the error it...

b0dc3628b9c361e06e366e58c68e7119fb1fce47 authored about 7 years ago by Evan Czaplicki <[email protected]>
Shuffle code to make Elm.Compiler work again

22777457cb4f78b2cd2a8b82037a8108cf17a417 authored about 7 years ago by Evan Czaplicki <[email protected]>
Revive code to verify module documentation

Checks for duplicates, only in exports, only in docs, missing type
annotations, missing docs. I ...

57e03b92b4ba7c78e8ae3b084d13fda2ae0c743b authored about 7 years ago by Evan Czaplicki <[email protected]>
Revive Elm.Docs and make it less clever

f41abda5cae1d5c3a078a6826885fd3cd7e9aab4 authored about 7 years ago by Evan Czaplicki <[email protected]>
Get Elm.Header working again

Also explicitly models whether the user puts a `module` declaration
line or not.

1b0a3bfd490eafac7c4b66d06028c4caa22c98ff authored about 7 years ago by Evan Czaplicki <[email protected]>
Combine Parse.Kernel into Elm.Kernel

93f583a5ef2fe1841d4f31895f2a8a184badf918 authored about 7 years ago by Evan Czaplicki <[email protected]>
Make sure package names are not inlined

This way they definitely get allocated only once

4624721d918aeb528d4155570e20bf54b09dd7ce authored about 7 years ago by Evan Czaplicki <[email protected]>
Simplify default import code. No more infix stuff.

55fd854e4da0e2c98f023cfb32bb92e0bfed7699 authored about 7 years ago by Evan Czaplicki <[email protected]>
Get Elm.Compiler.Module working again

102ed8cfa80695aabb3dae16809a22c49296d710 authored about 7 years ago by Evan Czaplicki <[email protected]>
Get public types working again

22736cfa699e4a47fe5510398564cc9e4ca5fa58 authored about 7 years ago by Evan Czaplicki <[email protected]>
Add OneOrMore.map

4eaeee576161cbd305f9319513d7d806eecba6ef authored about 7 years ago by Evan Czaplicki <[email protected]>
No longer need Objects.Internal => delete it

feb5ece22c8bfae1c851f2b0f935a3040fb0f7df authored about 7 years ago by Evan Czaplicki <[email protected]>
cosmetic: rename types to annotations

810172ef48eb47e54209e340cb17bba1ea08022d authored about 7 years ago by Evan Czaplicki <[email protected]>
Tie all the phases together

2e099f9777f0a337d5201219f19b291574891302 authored about 7 years ago by Evan Czaplicki <[email protected]>
Switch to the CPS'd result type for everything

740341f988764167cb9c6f5a7f2473a0e69d827f authored about 7 years ago by Evan Czaplicki <[email protected]>
Get Generate.JavaScript working again

6bc0cbbeeee3684c184ec2a215e7373efabb8bdd authored about 7 years ago by Evan Czaplicki <[email protected]>
Add code for shortening filed names based on frequency

755239cec54c062ca48ddbd3441f3366f01114a3 authored about 7 years ago by Evan Czaplicki <[email protected]>
Register _Utils_chr dependency for any character literal

d6f95cee5e65ad99d10392c7e7969cfacc5a3284 authored about 7 years ago by Evan Czaplicki <[email protected]>
Track normal and kernel deps the same way

So the Name.Tracker type only needs to track one set, rather than two
for each sort of dependency.

2799bc0bf345a4030b4b64547778dadff8208539 authored about 7 years ago by Evan Czaplicki <[email protected]>
Move kernel chunks into AST.Optimized

It now lives in the object graph nodes, so it makes sense to have all
the details in one place.

579464eec33f56215f12d839446a7528d75bbf8f authored about 7 years ago by Evan Czaplicki <[email protected]>
Add Elm.Name.platform

It is used in a decent number of places in code gen

84e60f08bdd34179df40f188026ec261981d10a6 authored about 7 years ago by Evan Czaplicki <[email protected]>
Add some logic to inline + when there are string literals

When we have type information, it’ll be possible to do this more often.
Nonetheless, this should...

4a4ef7229f81a853dc4247c07403cdb17c114c2e authored about 7 years ago by Evan Czaplicki <[email protected]>
Get generation of expressions working again

The code gets a decent bit simpler thanks to the improvements in
earlier phases:

- There is no ...

42c3f755ea728096477cbb819d25f93a7996eea0 authored about 7 years ago by Evan Czaplicki <[email protected]>
Change the Index API around for latest usage

ee5f359df6f2417ad9e5c7dd1d01a09ebada21ce authored about 7 years ago by Evan Czaplicki <[email protected]>
Shuffle the optimized AST to make code gen easier

For example, each case expression saves a temporary variable just in
case. That means we do all ...

8a89c868b2d6a4b916e60c7307d2d84e3a26c1f2 authored about 7 years ago by Evan Czaplicki <[email protected]>
Track custom kernel tokens more precisely

This makes it easier to delay decisions about how code should be
generated.

022925acae99dfa01b027fdfe6b882d532bb8cd9 authored about 7 years ago by Evan Czaplicki <[email protected]>