Thread overview
Release D 2.093.0
Jul 12, 2020
Martin Nowak
Jul 12, 2020
Greatsam4sure
Jul 12, 2020
aberba
Jul 12, 2020
Jacob Carlborg
Jul 16, 2020
Walter Bright
Jul 19, 2020
jmh530
Jul 20, 2020
Bastiaan Veelo
Jul 20, 2020
jmh530
Jul 20, 2020
Bastiaan Veelo
July 12, 2020
Glad to announce D 2.093.0, ♥ to the 54 contributors.

This release comes with a preview for shared variable initialization, template instantiation statistics, better Windows support of the install.sh script, and higher accuracy GC memory options.

http://dlang.org/download.html
http://dlang.org/changelog/2.093.0.html

-Martin

July 12, 2020
On Sunday, 12 July 2020 at 09:04:40 UTC, Martin Nowak wrote:
> Glad to announce D 2.093.0, ♥ to the 54 contributors.
>
> This release comes with a preview for shared variable initialization, template instantiation statistics, better Windows support of the install.sh script, and higher accuracy GC memory options.
>
> http://dlang.org/download.html
> http://dlang.org/changelog/2.093.0.html
>
> -Martin

Thanks to all the great people behind this great release.The D community hold you, people, a lot.
July 12, 2020
On Sunday, 12 July 2020 at 09:04:40 UTC, Martin Nowak wrote:
> Glad to announce D 2.093.0, ♥ to the 54 contributors.
>
> This release comes with a preview for shared variable initialization, template instantiation statistics, better Windows support of the install.sh script, and higher accuracy GC memory options.
>
> http://dlang.org/download.html
> http://dlang.org/changelog/2.093.0.html
>
> -Martin

Big ups to everyone involved. Very well appreciated.
July 12, 2020
On 2020-07-12 11:04, Martin Nowak wrote:
> Glad to announce D 2.093.0, ♥ to the 54 contributors.

I just tried to use this release in a GitHub Action using the "dlang-community/setup-dlang@v1" action. I got an error about the signature is not trusted. I tried 2.092.0, that works fine. Here's the full output:

Downloading http://downloads.dlang.org/releases/2.x/2.093.0/dmd.2.093.0.osx.tar.xz
7
Verifying the download with GPG
8
gpg: Signature made Tue Jul  7 13:27:08 2020 UTC
9
gpg:                using RSA key 3AAF1A18E61F6FAA3B7193E4DB8C5218B9329CF8
10
gpg: directory '/Users/runner/.gnupg' created
11
gpg: /Users/runner/.gnupg/trustdb.gpg: trustdb created
12
gpg: Good signature from "Martin Nowak <code@dawg.eu>" [unknown]
13
gpg:                 aka "Martin Nowak <martin.nowak@7learnings.com>" [unknown]
14
gpg:                 aka "Martin Nowak <martin@dlang.org>" [unknown]
15
gpg: WARNING: This key is not certified with a trusted signature!
16
gpg:          There is no indication that the signature belongs to the owner.
17
Primary key fingerprint: F46A 10D0 AB44 C3D1 5DD6  5797 BCDD 73FF C3EB 6146
18
     Subkey fingerprint: 3AAF 1A18 E61F 6FAA 3B71  93E4 DB8C 5218 B932 9CF8

-- 
/Jacob Carlborg
July 16, 2020
On 7/12/2020 2:04 AM, Martin Nowak wrote:
> Glad to announce D 2.093.0, ♥ to the 54 contributors.
> 
> This release comes with a preview for shared variable initialization, template instantiation statistics, better Windows support of the install.sh script, and higher accuracy GC memory options.
> 
> http://dlang.org/download.html
> http://dlang.org/changelog/2.093.0.html
> 
> -Martin
> 

Thank you, Martin!

It's on hacker news now, second page.

https://news.ycombinator.com/news
July 19, 2020
On Sunday, 12 July 2020 at 09:04:40 UTC, Martin Nowak wrote:
> Glad to announce D 2.093.0, ♥ to the 54 contributors.
>
> This release comes with a preview for shared variable initialization, template instantiation statistics, better Windows support of the install.sh script, and higher accuracy GC memory options.
>
> http://dlang.org/download.html
> http://dlang.org/changelog/2.093.0.html
>
> -Martin

Thanks to everyone for this release.

I just upgraded a machine to Linux Mint 20 on a fresh install and tried to run the install script. It fails with
main: line 178: USERPROFILE: unbound variable

This line should only be called on Windows, which I found strange. It turns out that this is driven by

```
posix_terminal() {
    # If this script is run on Windows cmd by passing it as argument to bash.exe,
    # the shell level will be 1. If it is run from a POSIX terminal, it will be > 1.
    if [ "$SHLVL" = 1 ]; then
        false
    else
        true
    fi
}
```

Running `echo $SHLVL` prints `1`

Running
```
bash
echo $SHLVL
```
prints `2`


Running `echo $SHELL` prints `/bin/bash`

The issue seems to be related to an update to Ubuntu 16:
https://askubuntu.com/questions/856532/why-is-shlvl-initially-2-in-ubuntu-16-10-but-not-earlier-versions
July 20, 2020
On Sunday, 19 July 2020 at 19:16:29 UTC, jmh530 wrote:
> I just upgraded a machine to Linux Mint 20 on a fresh install and tried to run the install script. It fails with
> main: line 178: USERPROFILE: unbound variable
>
> This line should only be called on Windows, which I found strange. It turns out that this is driven by
>
> ```
> posix_terminal() {
>     # If this script is run on Windows cmd by passing it as argument to bash.exe,
>     # the shell level will be 1. If it is run from a POSIX terminal, it will be > 1.
>     if [ "$SHLVL" = 1 ]; then
>         false
>     else
>         true
>     fi
> }
> ```
>
> Running `echo $SHLVL` prints `1`
>
> Running
> ```
> bash
> echo $SHLVL
> ```
> prints `2`
>
>
> Running `echo $SHELL` prints `/bin/bash`
>
> The issue seems to be related to an update to Ubuntu 16:
> https://askubuntu.com/questions/856532/why-is-shlvl-initially-2-in-ubuntu-16-10-but-not-earlier-versions

I don't think it is related to the Ubuntu 16.10 issue, because the above test does not rely on SHLVL being 2 initially. If the script is called from the terminal, and the terminal is running bash (which it seems to do according to the output of $SHELL) SHLVL should be at least 1 on the terminal and one higher when the script is run (since running a script starts a new bash). Maybe the script is run in a way that breaks this assumption? Is it run using `call`? Is it run headless, without a terminal? Is it not run by real bash?

There is a related conversation here, but not quite the same: https://github.com/dlang/installer/commit/e084815001390538bbd6fe5be7c2d4d81ee681b7#commitcomment-40487617

Please open an issue on https://issues.dlang.org/enter_bug.cgi and post a link here, if we need to drill deeper.

I can imagine that the current `posix_terminal()` is flawed if the terminal is running a shell that is not bash, for which we should find a solution.

--Bastiaan.
July 20, 2020
On Monday, 20 July 2020 at 14:14:26 UTC, Bastiaan Veelo wrote:
> [snip]

Thanks for your reply. I have put some comments in line below.

>
> I don't think it is related to the Ubuntu 16.10 issue, because the above test does not rely on SHLVL being 2 initially. If the script is called from the terminal, and the terminal is running bash (which it seems to do according to the output of $SHELL) SHLVL should be at least 1 on the terminal and one higher when the script is run (since running a script starts a new bash).

Hmm, ok. So your point is that its ok for it to start out of SHLVL 1, but then it should be incremented by calling bash as part of the curl pipe and detected? Is there a simple example of this behavior I could test?

> Maybe the script is run in a way that breaks this assumption? Is it run using `call`? Is it run headless, without a terminal? Is it not run by real bash?
>

As far as I can tell it is real bash (from above, "Running `echo $SHELL` prints `/bin/bash`")...but I primarily use Windows.

All I did was install the operating system, update and restart as needed, open a terminal, and then went to the dlang downloads page and copy and pasted the line
curl -fsS https://dlang.org/install.sh | bash -s dmd
(I might have needed to make it sudo, I can't recall).

> There is a related conversation here, but not quite the same: https://github.com/dlang/installer/commit/e084815001390538bbd6fe5be7c2d4d81ee681b7#commitcomment-40487617

nexor specifically mentioned docker being a problem. After getting Linux Mint 20 set up and failing to use the install.sh script, I switched to the package on the website and it installed without issue. However, I later tried to get docker working and then ran into this issue again and was not able to use the same workaround (I know very little about docker and did not want to push my luck). So not being able to use docker seems like a bigger issue than not being able to use the install.sh on Linux Mint 20.

>
> Please open an issue on https://issues.dlang.org/enter_bug.cgi and post a link here, if we need to drill deeper.
>

See
https://issues.dlang.org/show_bug.cgi?id=21059

> I can imagine that the current `posix_terminal()` is flawed if the terminal is running a shell that is not bash, for which we should find a solution.
>
> --Bastiaan.



July 20, 2020
On Monday, 20 July 2020 at 15:10:27 UTC, jmh530 wrote:
> See
> https://issues.dlang.org/show_bug.cgi?id=21059

Thanks, I will look into this. I posted a workaround there, which involves separate steps for downloading the script and running the script.

--Bastiaan.