# Elm 0.19.1 is out!

**URL:** <https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523>\
**Category:** Show and Tell\
**Created:** [October 21, 2019, 10:39pm UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523 "2019-10-21T22:39:46Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![evancz](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/evancz/32/16_2.png) [@evancz](https://discourse.elm-lang.org/u/evancz)\
**Post date:** [October 21, 2019, 10:39pm UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/1 "2019-10-21T22:39:46Z")

</div>

The announcement got posted around online today:

[https://elm-lang.org/news/the-syntax-cliff](https://elm-lang.org/news/the-syntax-cliff)

Excited for folks to start using it!

## Speed Boost

The compiler got a lot faster, but the blog post does not emphasize that at all.

This is because I’d like to set up a survey of how long 0.19.1 builds are taking on different computers and different size projects. My plan is to create a script that can measure this in a reasonable way, then share it here and solicit data from folks who are using 0.19.1 with larger projects. We need to wait until folks are upgraded to 0.19.1 though, so this will be some days or weeks in the future.

Anyway, I think it will make for a pretty interesting blog post!

## Helping Newcomers

Blog posts usually cause an influx of new people, so the online forums may be a bit more active and unpredictable than normal.

I suspect there will be some frustrated folks asking questions as a new batch of people go through the learning process, so try to remember the [chat tips](https://elm-lang.org/community/chat-tips).

At the end of the day, some folks will love the language, and others will find that it is not really for them. (Like cilantro?) That’s just how it goes!

## Thank You

Finally, thank you to everyone who helped out with testing 0.19.1. This process produced a bunch of nice improvements, and I am really happy with how 0.19.1 turned out in the end!

---

<div class="post-metadata">

**Author:** ![neurodynamic](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/neurodynamic/32/984_2.png) [@neurodynamic](https://discourse.elm-lang.org/u/neurodynamic)\
**Post date:** [October 21, 2019, 10:51pm UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/2 "2019-10-21T22:51:52Z")

</div>

Awesome! Also I would just like to say that I had never seen the chat tips page before now and it looks both useful and adorable!

---

<div class="post-metadata">

**Author:** ![berend](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/berend/32/2250_2.png) [@berend](https://discourse.elm-lang.org/u/berend)\
**Post date:** [October 22, 2019, 12:33am UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/3 "2019-10-22T00:33:00Z")

</div>

I love it that it compiles and it works. And that for the first time in my life I actually have success with an FP language. So language definitely has been working for me.

---

<div class="post-metadata">

**Author:** ![Namek](https://avatars.discourse-cdn.com/v4/letter/n/6a8cbe/32.png) [@Namek](https://discourse.elm-lang.org/u/Namek)\
**Post date:** [October 23, 2019, 10:37am UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/4 "2019-10-23T10:37:51Z")

</div>

I’m not sure if that’s a new error but there is this small issue:

`elm install rluiten/elm-date-extra` - it freezes and outputs nothing.

This library is for Elm 0.18 only.

EDIT: On Windows 10

---

<div class="post-metadata">

**Author:** ![roSievers](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/rosievers/32/2465_2.png) [@roSievers](https://discourse.elm-lang.org/u/roSievers)\
**Post date:** [October 23, 2019, 11:18am UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/5 "2019-10-23T11:18:57Z")

</div>

I ran this command with Elm 0.19.0 and Elm 0.19.1 on Ubuntu and it did not freeze for me. The error message has changed a bit, but that was expected.

---

<div class="post-metadata">

**Author:** ![peacememories](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/peacememories/32/539_2.png) [@peacememories](https://discourse.elm-lang.org/u/peacememories)\
**Post date:** [October 23, 2019, 9:37pm UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/6 "2019-10-23T21:37:20Z")

</div>

Multi-threaded builds with Parcel now _just work_ on Windows.  
Thanks a lot 🙂

---

<div class="post-metadata">

**Author:** ![Ethan\_Stephens](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/ethan_stephens/32/2629_2.png) [@Ethan\_Stephens](https://discourse.elm-lang.org/u/Ethan_Stephens)\
**Post date:** [October 25, 2019, 12:08pm UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/7 "2019-10-25T12:08:15Z")

</div>

Brand new to Elm and trying learn it. Going through a few quick tutorials (still based in 18) they make heavy use of toString, however as is apparent this was removed and for basic type things like String.fromInt are used. How do we do the same thing for a type alias? Or a list of some custom type? This seemed trivial in 18, not so much with 19.

---

<div class="post-metadata">

**Author:** ![antew](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/antew/32/2102_2.png) [@antew](https://discourse.elm-lang.org/u/antew)\
**Post date:** [October 25, 2019, 12:14pm UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/8 "2019-10-25T12:14:46Z")

</div>

Welcome to the community @Ethan_Stephens!

For running in debug mode there is `Debug.toString` ([https://package.elm-lang.org/packages/elm/core/latest/Debug#toString](https://package.elm-lang.org/packages/elm/core/latest/Debug#toString)) in 0.19. I usually use that or `Debug.log` for testing things out.

On thing to be aware of is that when compiling with `--optimize` calls to the Debug module are not allowed, but in debug mode it is fine.

---

<div class="post-metadata">

**Author:** ![Ethan\_Stephens](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/ethan_stephens/32/2629_2.png) [@Ethan\_Stephens](https://discourse.elm-lang.org/u/Ethan_Stephens)\
**Post date:** [October 25, 2019, 12:51pm UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/9 "2019-10-25T12:51:08Z")

</div>

@antew thanks for the response!

That’s makes sense as this would probably never be used on a type alias in production.

And it’s good to be learning another language!

---

<div class="post-metadata">

**Author:** ![michi-zuri](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/michi-zuri/32/4411_2.png) [@michi-zuri](https://discourse.elm-lang.org/u/michi-zuri)\
**Post date:** [October 25, 2019, 8:05pm UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/10 "2019-10-25T20:05:59Z")

</div>

I’ve installed Elm yesterday and tried to setup a hello world app in src/Main.elm  
The first hurdle was that I would get this error message:

> It requires 0.19.1, but you are using 0.19.0 right now.

I was a bit surprised that the version numbering is that strict. This was fixed by removing the elm.json file and recreating it with `elm init` and `elm install [insert package name]` to add all the dependencies as required by the app I was trying to compile. Before I figured out this solution I tried simply changing the version number in `elm.json` from 0.19.0 to 0.19.1, but that gave me a somewhat confusing error message that the packages could not be found and to check whether my internet connection is working. It did provide the useful hint not to edit this file by hand.

The next hurdle was that my hello world program in `src/Main.elm` would not compile with the command `elm make src/Main.elm`:

```auto
import Html exposing (text)
main =
  text "Hello!"

```

The error message went something like this: you must declare the module name. I was somewhat confused, since [here](https://guide.elm-lang.org/webapps/modules.html#defining-modules) I read, that it would be added automatically. I concluded that this might have changed and when I changed the 3-liner to the following 4-liner, it would compile and I finally had a hello world:

```auto
module Main exposing(..)
import Html exposing (text)
main =
  text "Hello!"

```

After that I tried to compile `alexkorban/elmstatic` and I faced another hurdle. When running `elmstatic build`, it complained that in `_layouts/Elmstatic.elm` and `_layouts/Styles.elm` no main entry point was found, so compiling failed. This is where I gave up and removed Elm 0.19.1 from my macOS and installed 0.19.0 instead. I tried the same things as described above and didn’t face any of the here mentioned hurdles.

I share my experiences here, since as a beginner programmer I really very much appreciate the effort that went into making helpful error messages. Unfortunately I won’t be able to profit from them until I become better at handling these kind of problems. At the moment I am learning mostly from analyzing examples made by others and playing around with them. As more and more things will be ported to 0.19.1 this problem will disappear of course, but I still wonder why 0.19.1 is not able to compile 0.19.0 code. Also I didn’t find any guide on any needed changes to the code to be able to pass compilation.

Thank you for the awesome language and looking forward to learning more about it!

---

<div class="post-metadata">

**Author:** ![razze](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/razze/32/1650_2.png) [@razze](https://discourse.elm-lang.org/u/razze)\
**Post date:** [October 28, 2019, 1:40am UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/11 "2019-10-28T01:40:11Z")

</div>

This is a kind of guide on how to upgrade to 0.19.1

> <https://github.com/elm/compiler/blob/master/docs/upgrade-instructions/0.19.1.md>

I think in it’s current form it’s missing that you might also have to change file name cases, as these have become stricter.

---

<div class="post-metadata">

**Author:** ![Damjan\_Georgievski](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/damjan_georgievski/32/417_2.png) [@Damjan\_Georgievski](https://discourse.elm-lang.org/u/Damjan_Georgievski)\
**Post date:** [October 28, 2019, 11:37am UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/12 "2019-10-28T11:37:40Z")

</div>

it seems that the travis community based elm support is broken now. actually it seems like the npm package is somehow broken

```auto
$ npm install -g elm@0.19.1
npm WARN deprecated elm@0.19.1: package.json was changed upon upload, breaking things on Mac and Linux
/home/travis/.nvm/versions/node/v10.13.0/bin/elm -> /home/travis/.nvm/versions/node/v10.13.0/lib/node_modules/elm/bin/elm
> elm@0.19.1 install /home/travis/.nvm/versions/node/v10.13.0/lib/node_modules/elm
> node install.js
--------------------------------------------------------------------------------
Downloading Elm 0.19.1 from GitHub.
NOTE: You can avoid npm entirely by downloading directly from:
https://github.com/elm/compiler/releases/download/0.19.1/binary-for-linux-64-bit.gz
All this package does is download that file and put it somewhere.
--------------------------------------------------------------------------------
path.js:39
    throw new ERR_INVALID_ARG_TYPE('path', 'string', path);
    ^
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type object
    at assertPath (path.js:39:11)
    at Object.resolve (path.js:1088:7)
    at module.exports (/home/travis/.nvm/versions/node/v10.13.0/lib/node_modules/elm/download.js:26:24)
    at Object.<anonymous> (/home/travis/.nvm/versions/node/v10.13.0/lib/node_modules/elm/install.js:4:1)
    at Module._compile (internal/modules/cjs/loader.js:688:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
    at Module.load (internal/modules/cjs/loader.js:598:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
    at Function.Module._load (internal/modules/cjs/loader.js:529:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:741:12)

```

ref: [https://travis-ci.com/irclogs/elm-0.19/builds/132886496](https://travis-ci.com/irclogs/elm-0.19/builds/132886496)

---

<div class="post-metadata">

**Author:** ![rupert](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/rupert/32/1775_2.png) [@rupert](https://discourse.elm-lang.org/u/rupert)\
**Post date:** [October 28, 2019, 12:06pm UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/13 "2019-10-28T12:06:24Z")

</div>

> [@Damjan\_Georgievski](#):
>
> actually it seems like the npm package is somehow broken

I am getting the same issue, although my version of nodejs was quite old, so meaning to upgrade and try again, but I just stuck with 0.19.0 for now.

Did you raise an issue against the npm package? As far as I can work out the npm package is part of elm/compiler: [compiler/installers at master · elm/compiler · GitHub](https://github.com/elm/compiler/tree/master/installers). So will raise an issue there, if there is not already one.

---

<div class="post-metadata">

**Author:** ![rupert](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/rupert/32/1775_2.png) [@rupert](https://discourse.elm-lang.org/u/rupert)\
**Post date:** [October 28, 2019, 12:19pm UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/14 "2019-10-28T12:19:59Z")

</div>

When I set the dependency explicitly to `0.19.1-3`, it worked:

```
  "devDependencies": {
    "elm": "0.19.1-3"
  }

```

Could not use `^0.19.0` or `0.19.1`.

---

<div class="post-metadata">

**Author:** ![wolfadex](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/wolfadex/32/2461_2.png) [@wolfadex](https://discourse.elm-lang.org/u/wolfadex)\
**Post date:** [October 28, 2019, 1:32pm UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/15 "2019-10-28T13:32:30Z")

</div>

@Damjan_Georgievski and @rupert if you look at the readme on [https://www.npmjs.com/package/elm](https://www.npmjs.com/package/elm) it says to "run `npm install elm@latest-0.19.1`", which will install `elm@0.19.1-3`. While this is a bit unconventional for JS versioning, I wanted to let you know in case someone else the same question. The NPM readme also suggests to only install this way if you’re not installing globally. If installing globally, use one of the elm installers from the guide [https://guide.elm-lang.org/install/elm.html](https://guide.elm-lang.org/install/elm.html).

Hope this helps.

---

<div class="post-metadata">

**Author:** ![mthiems](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/mthiems/32/2040_2.png) [@mthiems](https://discourse.elm-lang.org/u/mthiems)\
**Post date:** [October 28, 2019, 1:32pm UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/16 "2019-10-28T13:32:51Z")

</div>

@Damjan_Georgievski @rupert  
I’m not sure if you’ve seen this, but the information may be helpful:

> <https://github.com/elm/compiler/blob/master/installers/npm/README.md>

---

<div class="post-metadata">

**Author:** ![Damjan\_Georgievski](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/damjan_georgievski/32/417_2.png) [@Damjan\_Georgievski](https://discourse.elm-lang.org/u/Damjan_Georgievski)\
**Post date:** [October 28, 2019, 2:22pm UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/17 "2019-10-28T14:22:41Z")

</div>

I’ll try adding that -3 … if it was not clean I had this in .travis.yml:

```auto
dist: xenial
language: elm
elm: 0.19.1

```

---

<div class="post-metadata">

**Author:** ![Damjan\_Georgievski](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/damjan_georgievski/32/417_2.png) [@Damjan\_Georgievski](https://discourse.elm-lang.org/u/Damjan_Georgievski)\
**Post date:** [October 28, 2019, 2:50pm UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/18 "2019-10-28T14:50:54Z")

</div>

neither did `elm: latest-0.19.1` nor `elm: 0.19.1-3` work in .travis.yml. The errors are on the travis link I sent earlier (I didn’t want to copy/paste parts of it, in case I miss something).

---

<div class="post-metadata">

**Author:** ![razze](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/razze/32/1650_2.png) [@razze](https://discourse.elm-lang.org/u/razze)\
**Post date:** [October 29, 2019, 12:51am UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/19 "2019-10-29T00:51:00Z")

</div>

changing it to

```auto
elm:
  - latest-0.19.1

elm_test: 0.19.1

elm_format: 0.8.2

```

works for me [https://github.com/Razzeee/htbah-character-creator/blob/master/.travis.yml](https://github.com/Razzeee/htbah-character-creator/blob/master/.travis.yml)

even if it’s not documented that way 😕

> **[Travis CI Documentation](https://docs.travis-ci.com/user/languages/elm/)**
>
> Building an Elm Project

---

<div class="post-metadata">

**Author:** ![przemo\_li](https://avatars.discourse-cdn.com/v4/letter/p/3e96dc/32.png) [@przemo\_li](https://discourse.elm-lang.org/u/przemo_li)\
**Post date:** [October 29, 2019, 1:03pm UTC](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523/20 "2019-10-29T13:03:50Z")

</div>

Folks at [https://openbenchmarking.org/](https://openbenchmarking.org/) have test engine wired for some quality benchmarking.  
3rd parties can easily write and publish test provile and then any user of the suite (which is free and open source) can execute command to download it and execute.  
Test suite is advanced enought to handle multiple runs, warming cache, restarting computer for cold starts. Etc. etc.

Wont help with gathering input on compilation times for real life code bases, but will definetevly help gathering info on compilation time variablity between systems on some standard codebase.

Phoronix (same author) does run PHP benchmarks with it, so you can see some of the data it can gather here:  
[https://www.phoronix.com/scan.php?page=news\_item&px=PHP-7.3-Performance-Benchmarks](https://www.phoronix.com/scan.php?page=news_item&px=PHP-7.3-Performance-Benchmarks)

Results are uploaded to public base, where verybody can run their basic aggregations (apart from local summary of test runs ofc.).

I’m not affiliated. Just thought custom script by it’s very nature would require some of those anyway.

[Next page](https://discourse.elm-lang.org/t/elm-0-19-1-is-out/4523.md?page=2)
