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
Now it properly introduces type variables with CLet and checks cmdMap
and subMap
e1e19d58b370f5ca770d6e6a732eb3dc5a6bdaf8 authored almost 7 years ago by Evan Czaplicki <[email protected]>
70c7edfc919611902c572ca3e4e914e065177a54 authored almost 7 years ago by Evan Czaplicki <[email protected]>
d89ada275ff75c717814337f721e791dee637014 authored almost 7 years ago by Evan Czaplicki <[email protected]>
This was very tricky. All of the variables need to be allocated into
the latest rank, and this t...
The old version would rebuild the Content for each var. The new one
just traverses the structures.
a93092286aeb31e5b713c455d2a24ec43db9229f authored almost 7 years ago by Evan Czaplicki <[email protected]>
3f3ff8d52c1394ec3b23bd9d28b89a94f9c6ab15 authored almost 7 years ago by Evan Czaplicki <[email protected]>
bc755bbe8025661c9505dc49a2015ef6def65993 authored almost 7 years ago by Evan Czaplicki <[email protected]>
The idea to handle JSON is to just give the full text of the error
message rather than breaking ...
For example, when there is a pattern match in a function arg, but the
type has other options it ...
9cc5cd8a7c9ae96d811e7c8c2f0cf75158cf3ab7 authored almost 7 years ago by Evan Czaplicki <[email protected]>
fe2a01c71fb5498245c186050f15bc3de8c0f24b authored almost 7 years ago by Evan Czaplicki <[email protected]>
b53794626edbbcf40d874735876bde5a3ba35a0a authored almost 7 years ago by Evan Czaplicki <[email protected]>
There is now a bit more metadata about (1) the expression that
generated the constraint and (2) ...
28a748b63615ecade7e737e5df45a1c1b7926c51 authored almost 7 years ago by Evan Czaplicki <[email protected]>
990ec7af13da0555530383ccf25333f2118aca58 authored almost 7 years ago by Evan Czaplicki <[email protected]>
b42fe5a5eb3d734a2e179a0cb2e3af79a4d930a0 authored almost 7 years ago by Evan Czaplicki <[email protected]>
a2e92ddc247b9bbf4bfdded6fbec1fb7076db3a5 authored almost 7 years ago by Evan Czaplicki <[email protected]>
The main thing that was tricky here was that the way I destructured
patterns needed to change. B...
a740aac031aefb675eb4b02d911c9f97317991ff authored almost 7 years ago by Evan Czaplicki <[email protected]>
bf133d3514d78fc02d6a7bc36eab661d18b836f8 authored almost 7 years ago by Evan Czaplicki <[email protected]>
I believe it would require 8 levels of nested lets to use up all the
initial slots. The logic wi...
This is really important for making sure there’s not a bunch of
pointless garbage kept around! J...
1966810d849063e6162a1f3a83519f4fae9326d5 authored almost 7 years ago by Evan Czaplicki <[email protected]>
2a2e58c3289274df7b7696fd49ba958c6427423b authored almost 7 years ago by Evan Czaplicki <[email protected]>
71ee7d2ca96bf1a5c8c89b59a458724f0400702d authored almost 7 years ago by Evan Czaplicki <[email protected]>
557d518070d3e7ca36cc854866970adeb73b9fc0 authored almost 7 years ago by Evan Czaplicki <[email protected]>
The necessary metadata just got centralized into an already existing
thing.
d78e502a976acbba5b58ea104227b87ae5e9f006 authored almost 7 years ago by Evan Czaplicki <[email protected]>
This commit also introduces AST.Canonical.CtorOpts which caches which
constructor optimizations ...
Now that the AST tracks whether something is qualified or not, it makes
sense to change the stru...
450b5e70fd8b8958087e7515066a8dcdd7fd293b authored almost 7 years ago by Evan Czaplicki <[email protected]>
Track qualified and unqualified variables as separate AST nodes, and
mark whether the names are ...
This way when the Elm.Name implementation gets optimized, there won’t
be any unneeded allocation...
I don’t think the compiler generated this operator for anything in any
prior version, which woul...
7dfbc301d2715d355c595fcb241a737850f9dbed authored about 7 years ago by Evan Czaplicki <[email protected]>
The root motivation was like this:
1. I want as much control as possible over error messages.
2...
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]>b371450b28641ef1fc3125a09909454fb12b6a5b authored about 7 years ago by Evan Czaplicki <[email protected]>
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]>
Primarily this starts tracking the location of any given local
definition. That way, if there is...
0667191c60b3e44f1100c47d8faf1e3082b181a5 authored about 7 years ago by Evan Czaplicki <[email protected]>
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]>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]>c0800bc99ffc28febfe70b0cd8ded27d9905ccfd authored about 7 years ago by Evan Czaplicki <[email protected]>
510f529b1e8b7df4038c9a1dd62a551845e73283 authored about 7 years ago by Evan Czaplicki <[email protected]>
66183f1bb927ab3d6be3d44d787b05cd1e0ab55c authored about 7 years ago by Evan Czaplicki <[email protected]>
Will come back and add things when those things actually work.
9b630c1cb59834261546341efe303c468b2b433f authored about 7 years ago by Evan Czaplicki <[email protected]>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]>5d3f9450c98be6c8fa9f468ccaf12c910bc37043 authored about 7 years ago by Evan Czaplicki <[email protected]>
The other version allowed ONE or more.
bc1f2f0676969a9f1da67bb97c02e2db07bca7a9 authored about 7 years ago by Evan Czaplicki <[email protected]>126a0e36ceecdc83cec43e6302e35dd2ac15260a authored about 7 years ago by Evan Czaplicki <[email protected]>
Turns out it doesn’t make that one error message better, so it’s better
to not allocate a spot f...
d91a33e20c16a65b26f336ed8c718e55148cf373 authored about 7 years ago by Evan Czaplicki <[email protected]>
05a3fecf80e8f7a3da1301d3fdb54129d428fd29 authored about 7 years ago by Evan Czaplicki <[email protected]>
63e885c7bf19f8ec7d83d5fdbece02a5d6562955 authored about 7 years ago by Evan Czaplicki <[email protected]>
Man, wouldn’t it be cool if the compiler would detect this and tell you
about it at compile time :P
06847f67b4dc3da7a6a14acc5d68d7a450f3debb authored about 7 years ago by Evan Czaplicki <[email protected]>
a97552b8d0ae87d048bbd26ce40032bec1b31ccc authored about 7 years ago by Evan Czaplicki <[email protected]>
06e7d8ff3350a35e99bd74cac5c109f2c10b72ea authored about 7 years ago by Evan Czaplicki <[email protected]>
3f20280a21093a918264e39ea8983a15d7ecad4c authored about 7 years ago by Evan Czaplicki <[email protected]>
dc81293c4bc0ed2f8b9aed6cdf8fa88861ccd0a5 authored about 7 years ago by Evan Czaplicki <[email protected]>
In the olden times, we had a series of definitions like this:
var Elm = {};
Elm[‘Thing’] = Elm[...
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]>0da3204c4d72ad4d4dd5cd5e0767538d32d1f499 authored about 7 years ago by Evan Czaplicki <[email protected]>
Figure out the trie structure of modules, generate the Builders for
anything that needs to know ...
I don’t really like having this Elm.Utils file in the first place, so
the goal would be to remov...
3b7f6ff7b1cdbb2a6d32e1e54a39f11ae89d8df2 authored about 7 years ago by Evan Czaplicki <[email protected]>
474ec0d48e31c340c0d616b00516d51772974856 authored about 7 years ago by Evan Czaplicki <[email protected]>
9eb1ab6c387ee7bd7ce6218cd8cb95728487fb96 authored about 7 years ago by Evan Czaplicki <[email protected]>
The new version needs to know which canonical modules are available.
From there it can figure ou...
The old KChunk did not distinguish between Elm variables and kernel
variables. This is necessary...
92b06dee0403733438fb9d11b7a2cc28bfd3c5f2 authored about 7 years ago by Evan Czaplicki <[email protected]>
I believe this was nice because it hid the A.Located part. Now that
that is part of the error it...
22777457cb4f78b2cd2a8b82037a8108cf17a417 authored about 7 years ago by Evan Czaplicki <[email protected]>
Checks for duplicates, only in exports, only in docs, missing type
annotations, missing docs. I ...
f41abda5cae1d5c3a078a6826885fd3cd7e9aab4 authored about 7 years ago by Evan Czaplicki <[email protected]>
Also explicitly models whether the user puts a `module` declaration
line or not.
93f583a5ef2fe1841d4f31895f2a8a184badf918 authored about 7 years ago by Evan Czaplicki <[email protected]>
This way they definitely get allocated only once
4624721d918aeb528d4155570e20bf54b09dd7ce authored about 7 years ago by Evan Czaplicki <[email protected]>55fd854e4da0e2c98f023cfb32bb92e0bfed7699 authored about 7 years ago by Evan Czaplicki <[email protected]>
102ed8cfa80695aabb3dae16809a22c49296d710 authored about 7 years ago by Evan Czaplicki <[email protected]>
22736cfa699e4a47fe5510398564cc9e4ca5fa58 authored about 7 years ago by Evan Czaplicki <[email protected]>
4eaeee576161cbd305f9319513d7d806eecba6ef authored about 7 years ago by Evan Czaplicki <[email protected]>
feb5ece22c8bfae1c851f2b0f935a3040fb0f7df authored about 7 years ago by Evan Czaplicki <[email protected]>
810172ef48eb47e54209e340cb17bba1ea08022d authored about 7 years ago by Evan Czaplicki <[email protected]>
2e099f9777f0a337d5201219f19b291574891302 authored about 7 years ago by Evan Czaplicki <[email protected]>
740341f988764167cb9c6f5a7f2473a0e69d827f authored about 7 years ago by Evan Czaplicki <[email protected]>
6bc0cbbeeee3684c184ec2a215e7373efabb8bdd authored about 7 years ago by Evan Czaplicki <[email protected]>
755239cec54c062ca48ddbd3441f3366f01114a3 authored about 7 years ago by Evan Czaplicki <[email protected]>
d6f95cee5e65ad99d10392c7e7969cfacc5a3284 authored about 7 years ago by Evan Czaplicki <[email protected]>
So the Name.Tracker type only needs to track one set, rather than two
for each sort of dependency.
It now lives in the object graph nodes, so it makes sense to have all
the details in one place.
It is used in a decent number of places in code gen
84e60f08bdd34179df40f188026ec261981d10a6 authored about 7 years ago by Evan Czaplicki <[email protected]>
When we have type information, it’ll be possible to do this more often.
Nonetheless, this should...
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]>ee5f359df6f2417ad9e5c7dd1d01a09ebada21ce authored about 7 years ago by Evan Czaplicki <[email protected]>
For example, each case expression saves a temporary variable just in
case. That means we do all ...
This makes it easier to delay decisions about how code should be
generated.