Skip to content

builtins.match regex support "broken" on aarch64-darwin #4758

@andir

Description

@andir

Describe the bug

I just tried to use poetry2nix on aarch64-darwin and the eval failed invalid regular expression. Apparently this is an issue with the aarch64-darwin build of Nix. I'm using Nixpkgs from NixOS/nixpkgs#105026.

The problem appears to only exist on aarch64-darwin and not on any of the platforms. Also nixUnstable vs stable nix doesn't make a difference.

aarch64-darwin

[aarch64-darwin] $ nix repl
Welcome to Nix version 2.3.10. Type :? for help.

nix-repl> builtins.match "^.*?(egg|tar|tar.bz2|tar.gz|tar.lz|tar.lzma|tar.xz|tbz|tgz|tlz|txz|whl|zip)" "asd"
error: invalid regular expression '^.*?(egg|tar|tar.bz2|tar.gz|tar.lz|tar.lzma|tar.xz|tbz|tgz|tlz|txz|whl|zip)', at (string):1:1

[aarch64-darwin] $ nix repl
Welcome to Nix version 2.4pre20210326_dd77f71. Type :? for help.

nix-repl> builtins.match "^.*?(egg|tar|tar.bz2|tar.gz|tar.lz|tar.lzma|tar.xz|tbz|tgz|tlz|txz|whl|zip)" "asd"
error: invalid regular expression '^.*?(egg|tar|tar.bz2|tar.gz|tar.lz|tar.lzma|tar.xz|tbz|tgz|tlz|txz|whl|zip)'

       at «string»:1:1:

            1| builtins.match "^.*?(egg|tar|tar.bz2|tar.gz|tar.lz|tar.lzma|tar.xz|tbz|tgz|tlz|txz|whl|zip)" "asd"
             | ^
            2|

x86_64-linux

[x86_64-linux] $ nix repl
Welcome to Nix version 2.3.10. Type :? for help.

nix-repl> builtins.match "^.*?(egg|tar|tar.bz2|tar.gz|tar.lz|tar.lzma|tar.xz|tbz|tgz|tlz|txz|whl|zip)" "asd"
null

nix-repl> builtins.currentSystem
"x86_64-linux"


[x86_64-linux] $ nix repl
Welcome to Nix version 2.4pre20210326_dd77f71. Type :? for help.

nix-repl> builtins.match "^.*?(egg|tar|tar.bz2|tar.gz|tar.lz|tar.lzma|tar.xz|tbz|tgz|tlz|txz|whl|zip)" "asd"
null

aarch64-linux

[aarch64-linux] $ nix repl
Welcome to Nix version 2.4pre20210326_dd77f71. Type :? for help.

nix-repl>  builtins.match "^.*?(egg|tar|tar.bz2|tar.gz|tar.lz|tar.lzma|tar.xz|tbz|tgz|tlz|txz|whl|zip)" "asd"
null

x86_64-darwin


[x86_64-darwin]$ nix repl
Welcome to Nix version 2.3.10. Type :? for help.

nix-repl> builtins.match "^.*?(egg|tar|tar.bz2|tar.gz|tar.lz|tar.lzma|tar.xz|tbz|tgz|tlz|txz|whl|zip)" "asd"
[ ]

Steps To Reproduce

  1. On a aarch64-darwin system open the nix repl and try to eval builtins.match "^.*?(egg|tar|tar.bz2|tar.gz|tar.lz|tar.lzma|tar.xz|tbz|tgz|tlz|txz|whl|zip)" "asd"
  2. You should see an invalid regex error now.

Expected behavior

The behavior should be the same across all the platforms.

nix-env --version output

nix-env (Nix) 2.4pre20210326_dd77f71

Metadata

Metadata

Assignees

No one assigned

    Labels

    buglanguageThe Nix expression language; parser, interpreter, primops, evaluation, etcmacosNix on macOS, aka OS X, aka darwin

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions