Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: lydell/compiler
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.19.1
Choose a base ref
...
head repository: lydell/compiler
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: zero-deps-arm-lydell
Choose a head ref
  • 14 commits
  • 16 files changed
  • 2 contributors

Commits on Jan 4, 2023

  1. Support Yarn 2+

    lydell committed Jan 4, 2023
    Copy the full SHA
    bf16d39 View commit details
  2. Copy the full SHA
    048e1db View commit details
  3. Bump versions

    lydell committed Jan 4, 2023
    Copy the full SHA
    9f179e7 View commit details
  4. Copy the full SHA
    bd94e4f View commit details

Commits on Jan 8, 2023

  1. Add ARM 32-bit (Raspberry pi)

    lydell committed Jan 8, 2023
    Copy the full SHA
    b683a25 View commit details
  2. Bump version

    lydell committed Jan 8, 2023

    Partially verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    We cannot verify signatures from co-authors, and some of the co-authors attributed to this commit require their commits to be signed.
    Copy the full SHA
    7367a8a View commit details
  3. Add npm install command

    lydell committed Jan 8, 2023
    Copy the full SHA
    5046d98 View commit details

Commits on Jan 16, 2023

  1. Bump versions

    lydell committed Jan 16, 2023
    Copy the full SHA
    143712b View commit details

Commits on May 27, 2023

  1. Fix minor typo (#1)

    supermario authored May 27, 2023
    Copy the full SHA
    5457d8e View commit details

Commits on Sep 30, 2023

  1. Copy the full SHA
    a407977 View commit details
  2. Update README

    lydell committed Sep 30, 2023
    Copy the full SHA
    8e70806 View commit details

Commits on Nov 2, 2023

  1. Update readmes

    lydell committed Nov 2, 2023
    Copy the full SHA
    c455bea View commit details
  2. Bump version

    lydell committed Nov 2, 2023
    Copy the full SHA
    3d4135a View commit details

Commits on Sep 13, 2024

  1. Copy the full SHA
    1c43963 View commit details
26 changes: 11 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,18 @@
# Elm
# UNOFFICIAL ELM PACKAGE

A delightful language for reliable webapps.
**This is not the official `elm` repository!**

Check out the [Home Page](http://elm-lang.org/), [Try Online](http://elm-lang.org/try), or [The Official Guide](http://guide.elm-lang.org/)
This fork defaults to a branch with _no changes_ to the Elm compiler, _only to the npm package._

The npm package of this fork contains the _same binaries_ as the official package installs – plus a couple of new ones. That’s the only point of this package.

<br>
- Linux ARM 64-bit (useful for example in Docker on macOS ARM), [compiled by Mario Rogic](https://github.com/supermario/elm-tooling-compiler/commit/3af7f31a0ad5c4c7fe6df51220b3ec3e1d62a643).
- Raspberry PI Linux ARM 32-bit, [compiled by dmy](https://github.com/dmy/elm-raspberry-pi).

## Install
```
npm install @lydell/elm
```

[Install](https://guide.elm-lang.org/install/elm.html)
> **History:** This package was originally used for testing a better way to package Elm, which was then merged into the official `elm` package and released as version 0.19.1-6 – except the Linux ARM 64-bit and Raspberry PI binaries. The `@lydell/elm` package is still around in case you need those.
For multiple versions, previous versions, and uninstallation, see the instructions [here](https://github.com/elm/compiler/blob/master/installers/README.md).

<br>

## Help

If you are stuck, ask around on [the Elm slack channel][slack]. Folks are friendly and happy to help with questions!

[slack]: http://elmlang.herokuapp.com/
👉 [Official elm repository](https://github.com/elm/compiler)
52 changes: 7 additions & 45 deletions installers/npm/README.md
Original file line number Diff line number Diff line change
@@ -1,54 +1,16 @@
# EXPERIMENTAL PACKAGE
# UNOFFICIAL ELM PACKAGE

**This is not the official `elm` npm package!**

This is an experiment to package Elm as a dependency free npm package. If you want to try that out, go ahead and install this package.
This is a fork of the Elm _npm package._ It contains the _same binaries_ as the official package installs – plus a couple of new ones. That’s the only point of this package.

👉 [Official elm package](https://www.npmjs.com/package/elm)


# Elm Installer

[Elm](https://elm-lang.org) is a functional programming language that compiles to JavaScript.

Head over to [The Official Guide](https://guide.elm-lang.org/) to start learning Elm!


<br/>

## What is this package for?

**Normal installs**

Use the instructions [here](https://guide.elm-lang.org/install/elm.html) instead.

**Multiple versions**

People using Elm at work may use different versions of Elm in different projects. They can run `npm install elm@latest-0.19.1` in each project and use the binary at `./node_modules/.bin/elm` for compilation.

**Continuous integration** ⚠️

This works, but there are usually faster and more reliable options:

1. You can download `elm` directly from GitHub with [this script](https://github.com/elm/compiler/blob/master/installers/linux/README.md). This is all the `npm` installer does, but with extra HTTP requests to `npmjs.com` servers, making it slower and adding more failure points.
2. Many continuous integration have ways to cache files ([example](https://docs.travis-ci.com/user/caching/)) to make builds faster and more reliable.

That said, it will definitely work to use the `npm` installer on CI if you prefer that option.


<br/>

## Install Locally

The following command should download the latest Elm 0.19.1 binary:
- Linux ARM 64-bit (useful for example in Docker on macOS ARM), [compiled by Mario Rogic](https://github.com/supermario/elm-tooling-compiler/commit/3af7f31a0ad5c4c7fe6df51220b3ec3e1d62a643).
- Raspberry PI Linux ARM 32-bit, [compiled by dmy](https://github.com/dmy/elm-raspberry-pi).

```
npm install elm@latest-0.19.1
npm install @lydell/elm
```

You should be able to run `./node_modules/bin/elm --version` within your project and see `0.19.1`. Now you can compile with `./node_modules/bin/elm make src/Main.elm` and not disrupt other packages.

Use `npm install elm@latest-0.19.0` or `npm install elm@latest-0.18.0` for earlier versions.

**Note:** The `latest-X.Y.Z` convention is used in case we need to publish patches for the `npm` installer within a given Elm release. For example, say `npm` decides that some transitive dependency is not secure. Nothing is changing about Elm or the binaries, but we need to publish a new `npm` installer that fixes this issue.
> **History:** This package was originally used for testing a better way to package Elm, which was then merged into the official `elm` package and released as version 0.19.1-6.
👉 [Official elm package](https://www.npmjs.com/package/elm)
18 changes: 10 additions & 8 deletions installers/npm/binary.js
Original file line number Diff line number Diff line change
@@ -36,8 +36,12 @@ module.exports = function()
}
}

// Yarn 2 and later ("Berry") always invokes `node` (regardless of configuration)
// so we cannot do any optimizations there
var isYarnBerry = /\byarn\/(?!1\.)/.test(process.env.npm_config_user_agent || "");

// as mentioned in bin/elm we cannot do any optimizations on Windows
if (process.platform === 'win32')
if (process.platform === 'win32' || isYarnBerry)
{
return subBinaryPath;
}
@@ -73,11 +77,9 @@ function verifyPlatform(version, subPackageName)
var situation = process.platform + '_' + process.arch;
console.error(
'-- ERROR -----------------------------------------------------------------------\n\n'
+ 'I am detecting that your computer (' + situation + ') may not be compatible with any\n'
+ 'of the official pre-built binaries.\n\n'
+ 'I recommend against using the npm installer for your situation. Check out the\n'
+ 'alternative installers at https://github.com/elm/compiler/releases/tag/' + version + '\n'
+ 'to see if there is something that will work better for you.\n\n'
+ 'The @lydell/elm npm package does not support your platform (' + situation + ').\n\n'
+ 'You can try to manually download an appropriate binary (if there is one) from:\n'
+ 'https://github.com/lydell/compiler/releases/tag/' + version + '\n\n'
+ 'From there I recommend asking for guidance on Slack or Discourse to find someone\n'
+ 'who can help with your specific situation.\n\n'
+ '--------------------------------------------------------------------------------\n'
@@ -96,8 +98,8 @@ function exitFailure(version, message)
'-- ERROR -----------------------------------------------------------------------\n\n'
+ message
+ '\n\nNOTE: You can avoid npm entirely by downloading directly from:\n'
+ 'https://github.com/elm/compiler/releases/tag/' + version + '\n'
+ 'All this package does is distributing a file from there.\n\n'
+ 'https://github.com/lydell/compiler/releases/tag/' + version + '\n'
+ 'All this package does is distribute a file from there.\n\n'
+ '--------------------------------------------------------------------------------\n'
);
process.exit(1);
33 changes: 12 additions & 21 deletions installers/npm/package.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,12 @@
{
"name": "@lydell/elm",
"version": "0.19.1-9",
"description": "EXPERIMENTAL Installer for Elm: just downloads the binary into node_modules",
"version": "0.19.1-14",
"description": "Unofficial installer for Elm",
"license": "BSD-3-Clause",
"repository": {
"type": "git",
"url": "https://github.com/lydell/compiler.git"
},
"homepage": "https://github.com/lydell/compiler/tree/master/installers/npm",
"bugs": "https://github.com/lydell/compiler/issues",
"author": {
"name": "Evan Czaplicki",
"email": "evan@elm-lang.org",
"url": "https://github.com/evancz"
},
"engines": {
"node": ">=7.0.0"
},
"repository": "lydell/compiler",
"author": "Simon Lydell",
"type": "commonjs",
"exports": {},
"scripts": {
"install": "node install.js"
},
@@ -36,10 +26,11 @@
],
"bin": { "elm": "bin/elm" },
"optionalDependencies": {
"@lydell/elm_darwin_arm64": "0.19.1-0",
"@lydell/elm_darwin_x64": "0.19.1-1",
"@lydell/elm_linux_arm64": "0.19.1-2",
"@lydell/elm_linux_x64": "0.19.1-0",
"@lydell/elm_win32_x64": "0.19.1-0"
"@lydell/elm_darwin_arm64": "0.19.1-3",
"@lydell/elm_darwin_x64": "0.19.1-2",
"@lydell/elm_linux_arm": "0.19.1-0",
"@lydell/elm_linux_arm64": "0.19.1-4",
"@lydell/elm_linux_x64": "0.19.1-1",
"@lydell/elm_win32_x64": "0.19.1-1"
}
}
2 changes: 1 addition & 1 deletion installers/npm/packages/elm_darwin_arm64/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Elm

EXPERIMENTAL: This is the macOS ARM 64-bit binary for [Elm](https://elm-lang.org/).
This is the macOS ARM 64-bit binary for [Elm](https://elm-lang.org/).
4 changes: 2 additions & 2 deletions installers/npm/packages/elm_darwin_arm64/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@lydell/elm_darwin_arm64",
"version": "0.19.1-0",
"description": "EXPERIMENTAL: The macOS ARM 64-bit binary for Elm.",
"version": "0.19.1-3",
"description": "The macOS ARM 64-bit binary for Elm.",
"repository": "https://github.com/lydell/compiler",
"license": "BSD-3-Clause",
"os": [ "darwin" ],
2 changes: 1 addition & 1 deletion installers/npm/packages/elm_darwin_x64/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Elm

EXPERIMENTAL: This is the macOS 64-bit binary for [Elm](https://elm-lang.org/).
This is the macOS 64-bit binary for [Elm](https://elm-lang.org/).
4 changes: 2 additions & 2 deletions installers/npm/packages/elm_darwin_x64/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@lydell/elm_darwin_x64",
"version": "0.19.1-1",
"description": "EXPERIMENTAL: The macOS 64-bit binary for Elm.",
"version": "0.19.1-2",
"description": "The macOS 64-bit binary for Elm.",
"repository": "https://github.com/lydell/compiler",
"license": "BSD-3-Clause",
"os": [ "darwin" ],
3 changes: 3 additions & 0 deletions installers/npm/packages/elm_linux_arm/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Elm

This is the Linux ARM 32-bit binary for [Elm](https://elm-lang.org/).
9 changes: 9 additions & 0 deletions installers/npm/packages/elm_linux_arm/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"name": "@lydell/elm_linux_arm",
"version": "0.19.1-0",
"description": "The Linux ARM 32-bit binary for Elm.",
"repository": "https://github.com/lydell/compiler",
"license": "BSD-3-Clause",
"os": [ "linux" ],
"cpu": [ "arm" ]
}
2 changes: 1 addition & 1 deletion installers/npm/packages/elm_linux_arm64/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Elm

EXPERIMENTAL: This is the Linux ARM 64-bit binary for [Elm](https://elm-lang.org/).
This is the Linux ARM 64-bit binary for [Elm](https://elm-lang.org/).
4 changes: 2 additions & 2 deletions installers/npm/packages/elm_linux_arm64/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@lydell/elm_linux_arm64",
"version": "0.19.1-2",
"description": "EXPERIMENTAL: The Linux ARM 64-bit binary for Elm.",
"version": "0.19.1-4",
"description": "The Linux ARM 64-bit binary for Elm.",
"repository": "https://github.com/lydell/compiler",
"license": "BSD-3-Clause",
"os": [ "linux" ],
2 changes: 1 addition & 1 deletion installers/npm/packages/elm_linux_x64/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Elm

EXPERIMENTAL: This is the Linux 64-bit binary for [Elm](https://elm-lang.org/).
This is the Linux 64-bit binary for [Elm](https://elm-lang.org/).
4 changes: 2 additions & 2 deletions installers/npm/packages/elm_linux_x64/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@lydell/elm_linux_x64",
"version": "0.19.1-0",
"description": "EXPERIMENTAL: The Linux 64-bit binary for Elm.",
"version": "0.19.1-1",
"description": "The Linux 64-bit binary for Elm.",
"repository": "https://github.com/lydell/compiler",
"license": "BSD-3-Clause",
"os": [ "linux" ],
2 changes: 1 addition & 1 deletion installers/npm/packages/elm_win32_x64/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Elm

EXPERIMENTAL: This is the Windows 64-bit binary for [Elm](https://elm-lang.org/).
This is the Windows 64-bit binary for [Elm](https://elm-lang.org/).
4 changes: 2 additions & 2 deletions installers/npm/packages/elm_win32_x64/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@lydell/elm_win32_x64",
"version": "0.19.1-0",
"description": "EXPERIMENTAL: The Windows 64-bit binary for Elm.",
"version": "0.19.1-1",
"description": "The Windows 64-bit binary for Elm.",
"repository": "https://github.com/lydell/compiler",
"license": "BSD-3-Clause",
"os": [ "win32" ],