| author | |
| committer | |
| log | 39841d5e2c97a6b04834ae82a30db27cff01f17f |
| tree | ff80523e3da8c393fce86b36af0011190f17a5f5 |
| parent | 47d7bf1a0e9776e8695053b12795020644c2b006 |
2 files changed, 4 insertions(+), 10 deletions(-)
lib/std/builtin.zig+1| ... | @@ -567,6 +567,7 @@ pub fn testVersionParse() !void { | ... | @@ -567,6 +567,7 @@ pub fn testVersionParse() !void { |
| 567 | try f.eql("2.7.pre", 2, 7, 0); | 567 | try f.eql("2.7.pre", 2, 7, 0); |
| 568 | try f.eql("0..3", 0, 0, 0); | 568 | try f.eql("0..3", 0, 0, 0); |
| 569 | try f.eql("8.008.", 8, 8, 0); | 569 | try f.eql("8.008.", 8, 8, 0); |
| 570 | try f.eql("01...", 1, 0, 0); | ||
| 570 | try f.eql("55", 55, 0, 0); | 571 | try f.eql("55", 55, 0, 0); |
| 571 | try f.eql("4294967295.0.1", 4294967295, 0, 1); | 572 | try f.eql("4294967295.0.1", 4294967295, 0, 1); |
| 572 | try f.eql("429496729_6", 429496729, 0, 0); | 573 | try f.eql("429496729_6", 429496729, 0, 0); |
lib/std/zig/system.zig+3-10| ... | @@ -209,16 +209,9 @@ pub const NativeTargetInfo = struct { | ... | @@ -209,16 +209,9 @@ pub const NativeTargetInfo = struct { |
| 209 | .linux => { | 209 | .linux => { |
| 210 | const uts = std.os.uname(); | 210 | const uts = std.os.uname(); |
| 211 | const release = mem.spanZ(&uts.release); | 211 | const release = mem.spanZ(&uts.release); |
| 212 | // The release field may have several other fields after the | 212 | // The release field sometimes has a weird format, |
| 213 | // kernel version | 213 | // `Version.parse` will attempt to find some meaningful interpretation. |
| 214 | const kernel_version = if (mem.indexOfScalar(u8, release, '-')) |pos| | 214 | if (std.builtin.Version.parse(release)) |ver| { |
| 215 | release[0..pos] | ||
| 216 | else if (mem.indexOfScalar(u8, release, '_')) |pos| | ||
| 217 | release[0..pos] | ||
| 218 | else | ||
| 219 | release; | ||
| 220 | |||
| 221 | if (std.builtin.Version.parse(kernel_version)) |ver| { | ||
| 222 | os.version_range.linux.range.min = ver; | 215 | os.version_range.linux.range.min = ver; |
| 223 | os.version_range.linux.range.max = ver; | 216 | os.version_range.linux.range.max = ver; |
| 224 | } else |err| switch (err) { | 217 | } else |err| switch (err) { |