Status Update - 24 May 2018

618 views
Skip to first unread message

Evan Czaplicki

unread,
May 25, 2018, 12:07:19 AM5/25/18
to elm-dev
LIST ONLY - not for sharing on reddit, discourse, hn, twitter, etc.

Thank you everyone for trying out the alpha, keeping it all in the #elm-dev slack, and generally making it a nice time! :)

I linked to new binaries from here. New things include:
  • elm init exists to start very basic projects
  • I moved all @elm-lang repos to @elm, so elm-lang/core is now elm/core
  • I fixed a bunch of the bugs ya'll reported. Not everything though!
  • I found a pretty tricky bug with code gen of recursive values. Very sorry if you ran into it!

Recursive Values

One of the changes in 0.19 is that Elm is stricter about recursive values. They can only be at the top-level now. (I wrote about the compilation scheme used to generate recursive values here.) It is still possible to write non-terminating values that Elm cannot detect. For example:

loop = (\_ -> loop) 0

Detecting this in general is the halting problem, so as a best effort, the new binaries should show really pretty and helpful errors on initialization if you run into a situation like this. (It should show the loop with ascii art, like with cyclic dependencies.)

Please try going through your code and taking out as many Decode.lazy, Random.lazy, and Parser.lazy as you can. This is helpful because (1) you should not need as many as with 0.18 and (2) it will help find any oddities around this code!


Publishing Packages

With the switch from elm-lang/html to elm/html, I also dropped all the packages since they will all have incorrect elm.json files.

You will need to update your code and republish with a beta-1.0.0 tag. I wrote a little script to help me remove all alpha-1.0.0 tags:

for tag in $(git tag -l)
do
  if [[ $tag == alpha-* ]]
  then
    echo $tag
    git tag -d $tag
    git push origin :refs/tags/$tag
  fi
done

From there you can do something like this to republish with a beta tag:

git tag -a beta-1.0.0 -m "beta"
git push origin beta-1.0.0
rm -rf ~/.elm/
rm -rf elm-stuff/
elm publish

Reply all
Reply to author
Forward
0 new messages