amber-lang: 0.4.0-alpha -> 0.5.1-alpha (#476414)
This commit is contained in:
@@ -1,29 +0,0 @@
|
||||
From cae2ad70d6202bc97623be8c7c123ee2736a4644 Mon Sep 17 00:00:00 2001
|
||||
From: aleksana <me@aleksana.moe>
|
||||
Date: Sun, 9 Mar 2025 21:19:27 +0800
|
||||
Subject: [PATCH] replace_regex: remove bash word boundary when detecting
|
||||
gnused
|
||||
|
||||
Bash linked against C libraries other than GLibc may not support GNU
|
||||
extensions of POSIX Extended Regular Regex. For example,
|
||||
|
||||
> re='\bx'; [[ 'x' =~ $re ]] && echo "1"
|
||||
|
||||
does not output the same result on Linux/GLibc and macOS.
|
||||
---
|
||||
src/std/text.ab | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/std/text.ab b/src/std/text.ab
|
||||
index fe071e33..82449a02 100644
|
||||
--- a/src/std/text.ab
|
||||
+++ b/src/std/text.ab
|
||||
@@ -19,7 +19,7 @@ pub fun replace_regex(source: Text, search: Text, replace: Text, extended: Bool
|
||||
// GNU sed versions 4.0 through 4.2 support extended regex syntax,
|
||||
// but only via the "-r" option; use that if the version information
|
||||
// contains "GNU sed".
|
||||
- $ re='\bCopyright\b.+\bFree Software Foundation\b'; [[ \$(sed --version 2>/dev/null) =~ \$re ]] $
|
||||
+ $ re='Copyright.+Free Software Foundation'; [[ \$(sed --version 2>/dev/null) =~ \$re ]] $
|
||||
let flag = status == 0 then "-r" else "-E"
|
||||
return $ echo "{source}" | sed "{flag}" -e "s/{search}/{replace}/g" $
|
||||
} else {
|
||||
@@ -0,0 +1,38 @@
|
||||
From efdbecaf721ccb217ece34a5105eaac68e27aa51 Mon Sep 17 00:00:00 2001
|
||||
From: Max Karou <maxkarou@protonmail.com>
|
||||
Date: Sun, 4 Jan 2026 01:47:51 +0100
|
||||
Subject: [PATCH] sed_version: remove word boundary assertions
|
||||
|
||||
Word boundary assertions (\b) are GNU regex extensions that may fail
|
||||
on systems using non-glibc C libraries (e.g., musl, macOS).
|
||||
|
||||
This was previously fixed in replace_regex() via NixOS/nixpkgs#388412,
|
||||
which was subsequently upstreamed in amber-lang/amber#686.
|
||||
|
||||
Changes in amber-lang/amber#717 reintroduced the same portability issue.
|
||||
---
|
||||
src/std/text.ab | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/std/text.ab b/src/std/text.ab
|
||||
index 5f2d935..a5dac3f 100644
|
||||
--- a/src/std/text.ab
|
||||
+++ b/src/std/text.ab
|
||||
@@ -51,12 +51,12 @@ const SED_VERSION_BUSYBOX = 2
|
||||
fun sed_version(): Int {
|
||||
// We can't match against a word "GNU" because
|
||||
// alpine's busybox sed returns "This is not GNU sed version"
|
||||
- trust $ re='\bCopyright\b.+\bFree Software Foundation\b'; [[ \$(sed --version 2>/dev/null) =~ \$re ]] $
|
||||
+ trust $ re='Copyright.+Free Software Foundation'; [[ \$(sed --version 2>/dev/null) =~ \$re ]] $
|
||||
if status == 0 {
|
||||
return SED_VERSION_GNU
|
||||
}
|
||||
// On BSD single `sed` waits for stdin. We must use `sed --help` to avoid this.
|
||||
- trust $ re='\bBusyBox\b'; [[ \$(sed --help 2>&1) =~ \$re ]] $
|
||||
+ trust $ re='BusyBox'; [[ \$(sed --help 2>&1) =~ \$re ]] $
|
||||
if status == 0 {
|
||||
return SED_VERSION_BUSYBOX
|
||||
}
|
||||
--
|
||||
2.51.2
|
||||
|
||||
@@ -15,21 +15,22 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "amber-lang";
|
||||
version = "0.4.0-alpha";
|
||||
version = "0.5.1-alpha";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "amber-lang";
|
||||
repo = "amber";
|
||||
tag = version;
|
||||
hash = "sha256-N9G/2G8+vrpr1/K7XLwgW+X2oAyAaz4qvN+EbLOCU1Q=";
|
||||
hash = "sha256-v1uJe3vVGKXaZcQzdoYzu/bJKMQnS4IYET4QLPW+J8Y=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://github.com/amber-lang/amber/pull/686
|
||||
./fix_gnused_detection.patch
|
||||
# Upstreamed in #995, can be removed in >= 0.5.2
|
||||
# github.com/amber-lang/amber/pull/995
|
||||
./fix_word_boundaries.patch
|
||||
];
|
||||
|
||||
cargoHash = "sha256-e5+L7Qgd6hyqT1Pb9X7bVtRr+xm428Z5J4hhsYNnGtU=";
|
||||
cargoHash = "sha256-aXcxlmmDYLFbyRJYyGE1gbQMbdysHx4iWXsrUj10Eco=";
|
||||
|
||||
preConfigure = ''
|
||||
substituteInPlace src/compiler.rs \
|
||||
|
||||
Reference in New Issue
Block a user