forked from rosa/hakurei
Compare commits
52
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d9803e5be7
|
||
|
|
a28e01b863
|
||
|
|
84ab8daf6a
|
||
|
|
2ca57764a3
|
||
|
|
f189cc25c6
|
||
|
|
fa7e06ebd6
|
||
|
|
142152f6b8
|
||
|
|
b3ac03059f
|
||
|
|
cbd95294ba
|
||
|
|
ace59607f2
|
||
|
|
692c28ad29
|
||
|
|
df04ad592e
|
||
|
|
7737fd03ae
|
||
|
|
476945da23
|
||
|
|
85860c858a
|
||
|
|
60a62ae5f7
|
||
|
|
5313ea627b
|
||
|
|
5352598c68
|
||
|
|
9331a5cbeb
|
||
|
|
9b675c45ff
|
||
|
|
5cf1d70c7b
|
||
|
|
e58b6eb171
|
||
|
|
1625aaee80
|
||
|
|
203ce6864b
|
||
|
|
050051e593
|
||
|
|
530b63ca70
|
||
|
|
8821d34b10
|
||
|
|
054a8813d7
|
||
|
|
1bc16b51a6
|
||
|
|
3718c044c4
|
||
|
|
07e92db918
|
||
|
|
d2ee7cb551
|
||
|
|
39e757a84d
|
||
|
|
a431f16e6f
|
||
|
|
1f45d44e7f
|
||
|
|
92d01752ab
|
||
|
|
82bf46d23f
|
||
|
|
2abcb99ea2
|
||
|
|
2218efc0cf
|
||
|
|
30c5525d7b
|
||
|
|
bf6d1ada71
|
||
|
|
16294a35ee
|
||
|
|
22756af8fb
|
||
|
|
739ae4a7cf
|
||
|
|
eec89c4519
|
||
|
|
7193656b6a
|
||
|
|
7d86e19c07
|
||
|
|
f1ffb180bc
|
||
|
|
7f690145e3
|
||
|
|
c79ae7aed6
|
||
|
|
396ae2ba2a
|
||
|
|
1e85dca9e2
|
Vendored
+1
-1
@@ -1 +1 @@
|
|||||||
v0.4.6
|
v0.4.7
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ func TestEncodeJSON(t *testing.T) {
|
|||||||
want string
|
want string
|
||||||
}{
|
}{
|
||||||
{"marshaler", errorJSONMarshaler{},
|
{"marshaler", errorJSONMarshaler{},
|
||||||
`cannot encode json for main.errorJSONMarshaler: unique error 3735928559 injected by the test suite`},
|
`cannot encode json for *main.errorJSONMarshaler: unique error 3735928559 injected by the test suite`},
|
||||||
{"default", func() {},
|
{"default", func() {},
|
||||||
`cannot write json: json: unsupported type: func()`},
|
`cannot write json: json: unsupported type: func()`},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,12 @@ func TestDecompress(t *testing.T) {
|
|||||||
return (pkg.Checksum)(h.Sum(nil))
|
return (pkg.Checksum)(h.Sum(nil))
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
gh := pkg.NewDecompress(pkg.NewHTTPGet(
|
||||||
|
&client,
|
||||||
|
"file:///testdata",
|
||||||
|
testdataChecksum,
|
||||||
|
), pkg.Gzip)
|
||||||
|
|
||||||
checkWithCache(t, []cacheTestCase{
|
checkWithCache(t, []cacheTestCase{
|
||||||
{"decompress", 0, nil, func(t *testing.T, base *check.Absolute, c *pkg.Cache) {
|
{"decompress", 0, nil, func(t *testing.T, base *check.Absolute, c *pkg.Cache) {
|
||||||
cureMany(t, c, []cureStep{
|
cureMany(t, c, []cureStep{
|
||||||
@@ -48,11 +54,7 @@ func TestDecompress(t *testing.T) {
|
|||||||
Want: pkg.Checksum{0xfd},
|
Want: pkg.Checksum{0xfd},
|
||||||
}},
|
}},
|
||||||
|
|
||||||
{"gzip", pkg.NewDecompress(pkg.NewHTTPGet(
|
{"gzip", gh, ignorePathname, expectsChecksum(sha512.Sum384([]byte{0})), pkg.WNew, nil},
|
||||||
&client,
|
|
||||||
"file:///testdata",
|
|
||||||
testdataChecksum,
|
|
||||||
), pkg.Gzip), ignorePathname, expectsChecksum(sha512.Sum384([]byte{0})), pkg.WNew, nil},
|
|
||||||
})
|
})
|
||||||
}, expectsFS{
|
}, expectsFS{
|
||||||
".": {Mode: fs.ModeDir | 0700},
|
".": {Mode: fs.ModeDir | 0700},
|
||||||
@@ -61,7 +63,7 @@ func TestDecompress(t *testing.T) {
|
|||||||
"checksum/" + pkg.Encode(sha512.Sum384([]byte{0})): {Mode: 0400, Data: []byte{0}},
|
"checksum/" + pkg.Encode(sha512.Sum384([]byte{0})): {Mode: 0400, Data: []byte{0}},
|
||||||
|
|
||||||
"identifier": {Mode: fs.ModeDir | 0700},
|
"identifier": {Mode: fs.ModeDir | 0700},
|
||||||
"identifier/mae-iR_9LFT_BOEJ2IRzKsAlI754SalMjjt95fZeMd3gEyAzsrvuOXnXN0bFZJi4": {Mode: fs.ModeSymlink | 0777, Data: []byte("../checksum/vsAhtPNo4waRNOASwrQwcIPTqb3SBuJOXw2G4T1mNmVZM-wrQTRllmgXqcIIoRcX")},
|
"identifier/" + pkg.Encode(pkg.NewIR().Ident(gh).Value()): {Mode: fs.ModeSymlink | 0777, Data: []byte("../checksum/vsAhtPNo4waRNOASwrQwcIPTqb3SBuJOXw2G4T1mNmVZM-wrQTRllmgXqcIIoRcX")},
|
||||||
|
|
||||||
"substitute": {Mode: fs.ModeDir | 0700},
|
"substitute": {Mode: fs.ModeDir | 0700},
|
||||||
"work": {Mode: fs.ModeDir | 0700},
|
"work": {Mode: fs.ModeDir | 0700},
|
||||||
|
|||||||
+10
-29
@@ -3,7 +3,6 @@ package pkg_test
|
|||||||
import (
|
import (
|
||||||
"archive/tar"
|
"archive/tar"
|
||||||
"bytes"
|
"bytes"
|
||||||
"compress/gzip"
|
|
||||||
"crypto/sha512"
|
"crypto/sha512"
|
||||||
"errors"
|
"errors"
|
||||||
"io/fs"
|
"io/fs"
|
||||||
@@ -80,8 +79,8 @@ func TestTar(t *testing.T) {
|
|||||||
"checksum/" + wantEncode + "/work": {Mode: fs.ModeDir | 0500},
|
"checksum/" + wantEncode + "/work": {Mode: fs.ModeDir | 0500},
|
||||||
|
|
||||||
"identifier": {Mode: fs.ModeDir | 0700},
|
"identifier": {Mode: fs.ModeDir | 0700},
|
||||||
"identifier/7OZ5ErCxUJyRnaaFvUKhTryjsJAoOBUR2MZpUB1DD57jRa09Xxsh9BUs0dM9z5uH": {Mode: fs.ModeSymlink | 0777, Data: []byte("../checksum/" + wantEncode)},
|
"identifier/snWp53xxNdx6cV5KSJqzyVWzLlTsFd8udOisIu8Rgxly09mGcxufYCoQ5CQrHDyZ": {Mode: fs.ModeSymlink | 0777, Data: []byte("../checksum/" + wantEncode)},
|
||||||
"identifier/paWdPW_BowV3345c4GP4xxSNgxVs_7F09m9m7OaH5XbyuI3dTGZ-kFPOXFbwgr5O": {Mode: fs.ModeSymlink | 0777, Data: []byte("../checksum/" + wantEncode)},
|
"identifier/v9DUj2R4YK_3ae0m9VuUYI-HJysDDCENu1k10thxioycRzFH1Qejw5bBGukm4IdL": {Mode: fs.ModeSymlink | 0777, Data: []byte("../checksum/" + wantEncode)},
|
||||||
|
|
||||||
"substitute": {Mode: fs.ModeDir | 0700},
|
"substitute": {Mode: fs.ModeDir | 0700},
|
||||||
|
|
||||||
@@ -104,8 +103,8 @@ func TestTar(t *testing.T) {
|
|||||||
"checksum/" + wantExpandEncode + "/libedac.so": {Mode: fs.ModeSymlink | 0777, Data: []byte("/proc/nonexistent/libedac.so")},
|
"checksum/" + wantExpandEncode + "/libedac.so": {Mode: fs.ModeSymlink | 0777, Data: []byte("/proc/nonexistent/libedac.so")},
|
||||||
|
|
||||||
"identifier": {Mode: fs.ModeDir | 0700},
|
"identifier": {Mode: fs.ModeDir | 0700},
|
||||||
"identifier/1g2Tcg7pOJkZFxlKploBm4U0vIyMYbxDkcwwydwsF9BMs-w-knFJS41jnqOt16jT": {Mode: fs.ModeSymlink | 0777, Data: []byte("../checksum/" + wantExpandEncode)},
|
"identifier/1SuvgGltcsgqps9tWqjULG8RCdpx_6KVWXdsMd5xPKvdtysOxqpE-3bLu4j0WpGk": {Mode: fs.ModeSymlink | 0777, Data: []byte("../checksum/" + wantExpandEncode)},
|
||||||
"identifier/7OZ5ErCxUJyRnaaFvUKhTryjsJAoOBUR2MZpUB1DD57jRa09Xxsh9BUs0dM9z5uH": {Mode: fs.ModeSymlink | 0777, Data: []byte("../checksum/" + wantExpandEncode)},
|
"identifier/snWp53xxNdx6cV5KSJqzyVWzLlTsFd8udOisIu8Rgxly09mGcxufYCoQ5CQrHDyZ": {Mode: fs.ModeSymlink | 0777, Data: []byte("../checksum/" + wantExpandEncode)},
|
||||||
|
|
||||||
"substitute": {Mode: fs.ModeDir | 0700},
|
"substitute": {Mode: fs.ModeDir | 0700},
|
||||||
|
|
||||||
@@ -132,16 +131,7 @@ func checkTarHTTP(
|
|||||||
if err := w.Close(); err != nil {
|
if err := w.Close(); err != nil {
|
||||||
t.Fatalf("Close: error = %v", err)
|
t.Fatalf("Close: error = %v", err)
|
||||||
}
|
}
|
||||||
|
testdata = buf.String()
|
||||||
var zbuf bytes.Buffer
|
|
||||||
gw := gzip.NewWriter(&zbuf)
|
|
||||||
if _, err := gw.Write(buf.Bytes()); err != nil {
|
|
||||||
t.Fatalf("Write: error = %v", err)
|
|
||||||
}
|
|
||||||
if err := gw.Close(); err != nil {
|
|
||||||
t.Fatalf("Close: error = %v", err)
|
|
||||||
}
|
|
||||||
testdata = zbuf.String()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
testdataChecksum := func() pkg.Checksum {
|
testdataChecksum := func() pkg.Checksum {
|
||||||
@@ -208,28 +198,19 @@ func checkTarHTTP(
|
|||||||
defer newDestroyArtifactFunc(&tarDirType)(t, base, c)
|
defer newDestroyArtifactFunc(&tarDirType)(t, base, c)
|
||||||
|
|
||||||
cureMany(t, c, []cureStep{
|
cureMany(t, c, []cureStep{
|
||||||
{"file", pkg.NewTar(pkg.NewDecompress(pkg.NewHTTPGet(
|
{"file", pkg.NewTar(pkg.NewHTTPGet(
|
||||||
&client,
|
&client,
|
||||||
"file:///testdata",
|
"file:///testdata",
|
||||||
testdataChecksum,
|
testdataChecksum,
|
||||||
), pkg.Gzip)), ignorePathname, want, pkg.WNew, nil},
|
|
||||||
|
|
||||||
{"directory", pkg.NewTar(pkg.NewDecompress(
|
|
||||||
&tarDir,
|
|
||||||
pkg.Gzip,
|
|
||||||
)), ignorePathname, want, pkg.WNew, nil},
|
)), ignorePathname, want, pkg.WNew, nil},
|
||||||
|
|
||||||
{"multiple entries", pkg.NewTar(pkg.NewDecompress(
|
{"directory", pkg.NewTar(&tarDir), ignorePathname, want, pkg.WNew, nil},
|
||||||
&tarDirMulti,
|
|
||||||
pkg.Gzip,
|
{"multiple entries", pkg.NewTar(&tarDirMulti), nil, nil, pkg.WNew, errors.New(
|
||||||
)), nil, nil, pkg.WNew, errors.New(
|
|
||||||
"input directory does not contain a single regular file",
|
"input directory does not contain a single regular file",
|
||||||
)},
|
)},
|
||||||
|
|
||||||
{"bad type", pkg.NewTar(pkg.NewDecompress(
|
{"bad type", pkg.NewTar(&tarDirType), nil, nil, pkg.WNew, errors.New(
|
||||||
&tarDirType,
|
|
||||||
pkg.Gzip,
|
|
||||||
)), nil, nil, pkg.WNew, errors.New(
|
|
||||||
"input directory does not contain a single regular file",
|
"input directory does not contain a single regular file",
|
||||||
)},
|
)},
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ func TestDispatch(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
}, true, []string{`{"kind":"fatal","message":"rejecting coldboot loop","error":"unique error 51966 injected by the test suite"}
|
}, true, []string{`{"kind":"fatal","message":"rejecting coldboot loop","error":"unique error 51966 injected by the test suite"}
|
||||||
`, `{"kind":"inconsistent","message":"processed inconsistent uevent","error":{"fault":1,"event":{"action":"add","devpath":"\u0000","env":{"V":"\ufffd"},"seqnum":2,"subsystem":""},"object":{"state":1,"devpath":"\u0000","subsystem":"","env":{"V":"\ufffd"}}}}
|
`, `{"kind":"inconsistent","message":"processed inconsistent uevent","error":{"fault":1,"event":{"action":"add","devpath":"\u0000","env":{"V":"` + "\ufffd" + `"},"seqnum":2,"subsystem":""},"object":{"state":1,"devpath":"\u0000","subsystem":"","env":{"V":"` + "\ufffd" + `"}}}}
|
||||||
`}, `dispatch: rejecting coldboot loop: unique error 51966 injected by the test suite
|
`}, `dispatch: rejecting coldboot loop: unique error 51966 injected by the test suite
|
||||||
dispatch: processed inconsistent uevent: duplicate add event on devpath "\x00"
|
dispatch: processed inconsistent uevent: duplicate add event on devpath "\x00"
|
||||||
`, nil},
|
`, nil},
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"io"
|
"io"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
|
||||||
"text/scanner"
|
"text/scanner"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -303,7 +302,6 @@ func (ScanError) Error() string {
|
|||||||
|
|
||||||
// Parse parses expressions from r.
|
// Parse parses expressions from r.
|
||||||
func Parse(r io.Reader) (e []any, err error) {
|
func Parse(r io.Reader) (e []any, err error) {
|
||||||
r = insertDelimiters(r)
|
|
||||||
var p parser
|
var p parser
|
||||||
p.s.Init(r)
|
p.s.Init(r)
|
||||||
|
|
||||||
@@ -313,7 +311,12 @@ func Parse(r io.Reader) (e []any, err error) {
|
|||||||
scanner.ScanRawStrings |
|
scanner.ScanRawStrings |
|
||||||
scanner.ScanComments |
|
scanner.ScanComments |
|
||||||
scanner.SkipComments
|
scanner.SkipComments
|
||||||
p.s.IsIdentRune = isIdentRune
|
p.s.IsIdentRune = func(ch rune, i int) bool {
|
||||||
|
if i == 0 && ch >= '0' && ch <= '9' {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return ch > 0 && ch < rune(len(idents)) && idents[ch]
|
||||||
|
}
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
v := recover()
|
v := recover()
|
||||||
@@ -343,86 +346,3 @@ func Parse(r io.Reader) (e []any, err error) {
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
func isIdentRune(ch rune, i int) bool {
|
|
||||||
if i == 0 && ch >= '0' && ch <= '9' {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
return ch > 0 && ch < rune(len(idents)) && idents[ch]
|
|
||||||
}
|
|
||||||
func insertDelimiters(r io.Reader) io.Reader {
|
|
||||||
var s scanner.Scanner
|
|
||||||
s.Init(r)
|
|
||||||
s.Mode = scanner.ScanIdents |
|
|
||||||
scanner.ScanInts |
|
|
||||||
scanner.ScanStrings |
|
|
||||||
scanner.ScanRawStrings |
|
|
||||||
scanner.ScanComments |
|
|
||||||
scanner.SkipComments
|
|
||||||
s.Whitespace = 0
|
|
||||||
s.IsIdentRune = isIdentRune
|
|
||||||
|
|
||||||
var b strings.Builder
|
|
||||||
nldelim := false
|
|
||||||
delim := new(runeStack)
|
|
||||||
|
|
||||||
for tok := s.Scan(); tok != scanner.EOF; tok = s.Scan() {
|
|
||||||
switch tok {
|
|
||||||
case '{', '[':
|
|
||||||
nldelim = false
|
|
||||||
if tok == '{' {
|
|
||||||
delim.Push(';')
|
|
||||||
} else {
|
|
||||||
delim.Push(',')
|
|
||||||
}
|
|
||||||
b.WriteRune(tok)
|
|
||||||
case scanner.String, scanner.RawString, scanner.Int, scanner.Ident:
|
|
||||||
b.WriteString(s.TokenText())
|
|
||||||
nldelim = true
|
|
||||||
case '+', ':', '=', ',', ';':
|
|
||||||
nldelim = false
|
|
||||||
b.WriteRune(tok)
|
|
||||||
case '\n':
|
|
||||||
if nldelim {
|
|
||||||
b.WriteRune(delim.Peek())
|
|
||||||
nldelim = false
|
|
||||||
}
|
|
||||||
case '}', ']':
|
|
||||||
if nldelim {
|
|
||||||
b.WriteRune(delim.Peek())
|
|
||||||
}
|
|
||||||
delim.Pop()
|
|
||||||
nldelim = true
|
|
||||||
b.WriteRune(tok)
|
|
||||||
default:
|
|
||||||
b.WriteRune(tok)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return strings.NewReader(b.String())
|
|
||||||
}
|
|
||||||
|
|
||||||
type runeStack struct {
|
|
||||||
arr []rune
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *runeStack) Push(r rune) {
|
|
||||||
s.arr = append(s.arr, r)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *runeStack) Peek() rune {
|
|
||||||
if s.Length() > 0 {
|
|
||||||
return s.arr[s.Length()-1]
|
|
||||||
}
|
|
||||||
return '\n'
|
|
||||||
}
|
|
||||||
func (s *runeStack) Pop() rune {
|
|
||||||
v := s.Peek()
|
|
||||||
if s.Length() > 1 {
|
|
||||||
s.arr = s.arr[:s.Length()-1]
|
|
||||||
} else {
|
|
||||||
s.arr = make([]rune, 0)
|
|
||||||
}
|
|
||||||
return v
|
|
||||||
}
|
|
||||||
func (s *runeStack) Length() int {
|
|
||||||
return len(s.arr)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -11,10 +11,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
//go:embed testdata/gcc.az
|
//go:embed testdata/gcc.az
|
||||||
var gccSample string
|
var sample string
|
||||||
|
|
||||||
//go:embed testdata/mesa.az
|
|
||||||
var mesaSample string
|
|
||||||
|
|
||||||
func TestParse(t *testing.T) {
|
func TestParse(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
@@ -64,57 +61,8 @@ func TestParse(t *testing.T) {
|
|||||||
{"missing array delimiter", `[ v0 v1 ]`, nil, TokenError{',', scanner.Ident}},
|
{"missing array delimiter", `[ v0 v1 ]`, nil, TokenError{',', scanner.Ident}},
|
||||||
{"truncated array", `[ "\x00"`, nil,
|
{"truncated array", `[ "\x00"`, nil,
|
||||||
ExprError(scanner.EOF)},
|
ExprError(scanner.EOF)},
|
||||||
{"array of func", "[\nf {\n v = v\n v2 =\n v2\n }\n g {\n w = w\n w2 = w2\n}\n]\n", []any{Array{
|
|
||||||
Val{Func{
|
{"gcc", sample, []any{Func{
|
||||||
Ident: Ident("f"),
|
|
||||||
Args: []Arg{
|
|
||||||
{K: []Ident{Ident("v")}, V: Val{Ident("v")}},
|
|
||||||
{K: []Ident{Ident("v2")}, V: Val{Ident("v2")}},
|
|
||||||
},
|
|
||||||
}},
|
|
||||||
Val{Func{
|
|
||||||
Ident: Ident("g"),
|
|
||||||
Args: []Arg{
|
|
||||||
{K: []Ident{Ident("w")}, V: Val{Ident("w")}},
|
|
||||||
{K: []Ident{Ident("w2")}, V: Val{Ident("w2")}},
|
|
||||||
},
|
|
||||||
}},
|
|
||||||
}}, nil},
|
|
||||||
{"mixed semicolons and newlines", `
|
|
||||||
f {
|
|
||||||
a = 4;
|
|
||||||
b = 2
|
|
||||||
c = [
|
|
||||||
a,
|
|
||||||
b
|
|
||||||
c
|
|
||||||
d, e
|
|
||||||
]
|
|
||||||
d = {
|
|
||||||
"a": b;
|
|
||||||
"c": d
|
|
||||||
}; e = 2
|
|
||||||
}`,
|
|
||||||
[]any{Func{
|
|
||||||
Ident: Ident("f"),
|
|
||||||
Args: []Arg{
|
|
||||||
{K: []Ident{Ident("a")}, V: Val{Int(4)}},
|
|
||||||
{K: []Ident{Ident("b")}, V: Val{Int(2)}},
|
|
||||||
{K: []Ident{Ident("c")}, V: Val{Array{
|
|
||||||
Val{Ident("a")},
|
|
||||||
Val{Ident("b")},
|
|
||||||
Val{Ident("c")},
|
|
||||||
Val{Ident("d")},
|
|
||||||
Val{Ident("e")},
|
|
||||||
}}},
|
|
||||||
{K: []Ident{Ident("d")}, V: Val{[]KV{
|
|
||||||
{K: String("a"), V: Val{Ident("b")}},
|
|
||||||
{K: String("c"), V: Val{Ident("d")}},
|
|
||||||
}}},
|
|
||||||
{K: []Ident{Ident("e")}, V: Val{Int(2)}},
|
|
||||||
},
|
|
||||||
}}, nil},
|
|
||||||
{"gcc", gccSample, []any{Func{
|
|
||||||
Ident: Ident("gcc"),
|
Ident: Ident("gcc"),
|
||||||
Package: true,
|
Package: true,
|
||||||
|
|
||||||
@@ -191,140 +139,6 @@ f {
|
|||||||
}}},
|
}}},
|
||||||
},
|
},
|
||||||
}}, nil},
|
}}, nil},
|
||||||
{"mesa", mesaSample, []any{Func{
|
|
||||||
Ident: Ident("mesa"),
|
|
||||||
Package: true,
|
|
||||||
Args: []Arg{
|
|
||||||
{K: []Ident{Ident("description")}, V: Val{String("open source implementations of OpenGL, OpenGL ES, Vulkan, OpenCL, and more")}},
|
|
||||||
{K: []Ident{Ident("website")}, V: Val{String("https://mesa3d.org")}},
|
|
||||||
{K: []Ident{Ident("anitya")}, V: Val{Int(1970)}},
|
|
||||||
{K: []Ident{Ident("latest")}, V: Val{Ident("anityaFallback")}},
|
|
||||||
{K: []Ident{Ident("version")}, V: Val{String("26.2.0")}, R: true},
|
|
||||||
|
|
||||||
{K: []Ident{Ident("source")}, V: Val{Func{
|
|
||||||
Ident: Ident("remoteGitLab"),
|
|
||||||
Args: []Arg{
|
|
||||||
{K: []Ident{Ident("domain")}, V: Val{String("gitlab.freedesktop.org")}},
|
|
||||||
{K: []Ident{Ident("suffix")}, V: Val{String("mesa/mesa")}},
|
|
||||||
{K: []Ident{Ident("ref")}, V: Val{String("mesa-"), Ident("version")}},
|
|
||||||
{K: []Ident{Ident("checksum")}, V: Val{String("UPnIdpo5wUsE938GXY-YyYDzfF62enRoEzCYRyLLPvzBhBbP4wZ8nDiKsjivcs5v")}},
|
|
||||||
},
|
|
||||||
}}},
|
|
||||||
{K: []Ident{Ident("exec")}, V: Val{Func{Ident: Ident("meson"), Args: []Arg{
|
|
||||||
{K: []Ident{Ident("setup")}, V: Val{[]KV{
|
|
||||||
{K: String("platforms"), V: Val{String("x11,wayland")}},
|
|
||||||
{K: String("video-codecs"), V: Val{String("all")}},
|
|
||||||
{K: String("glvnd"), V: Val{String("enabled")}},
|
|
||||||
{K: String("gbm"), V: Val{String("enabled")}},
|
|
||||||
{K: String("egl"), V: Val{String("enabled")}},
|
|
||||||
{K: String("gallium-drivers"), V: Val{Func{
|
|
||||||
Ident: Ident("join"),
|
|
||||||
Args: []Arg{
|
|
||||||
{K: []Ident{Ident("elems")}, V: Val{Array{
|
|
||||||
Val{String("asahi")},
|
|
||||||
Val{String("crocus")},
|
|
||||||
Val{String("etnaviv")},
|
|
||||||
Val{String("freedreno")},
|
|
||||||
Val{String("i915")},
|
|
||||||
Val{String("iris")},
|
|
||||||
Val{String("lima")},
|
|
||||||
Val{String("llvmpipe")},
|
|
||||||
Val{String("nouveau")},
|
|
||||||
Val{String("panfrost")},
|
|
||||||
Val{String("r300")},
|
|
||||||
Val{String("r600")},
|
|
||||||
Val{String("radeonsi")},
|
|
||||||
Val{String("softpipe")},
|
|
||||||
Val{String("svga")},
|
|
||||||
Val{String("tegra")},
|
|
||||||
Val{String("v3d")},
|
|
||||||
Val{String("vc4")},
|
|
||||||
Val{String("virgl")},
|
|
||||||
Val{String("zink")}}}},
|
|
||||||
{K: []Ident{Ident("sep")}, V: Val{String(",")}},
|
|
||||||
},
|
|
||||||
}}},
|
|
||||||
{K: String("vulkan-drivers"), V: Val{Func{
|
|
||||||
Ident: Ident("join"),
|
|
||||||
Args: []Arg{
|
|
||||||
{K: []Ident{Ident("elems")}, V: Val{Array{
|
|
||||||
Val{String("amd")},
|
|
||||||
Val{String("broadcom")},
|
|
||||||
Val{String("freedreno")},
|
|
||||||
Val{String("intel")},
|
|
||||||
Val{String("intel_hasvk")},
|
|
||||||
Val{String("panfrost")},
|
|
||||||
Val{String("swrast")},
|
|
||||||
Val{String("virtio")},
|
|
||||||
Val{String("imagination")},
|
|
||||||
Val{String("asahi")},
|
|
||||||
Val{String("gfxstream")},
|
|
||||||
}}},
|
|
||||||
{K: []Ident{Ident("sep")}, V: Val{String(",")}}},
|
|
||||||
}}},
|
|
||||||
{K: String("vulkan-layers"), V: Val{Func{
|
|
||||||
Ident: Ident("join"),
|
|
||||||
Args: []Arg{
|
|
||||||
{K: []Ident{Ident("elems")}, V: Val{Array{
|
|
||||||
Val{String("device-select")},
|
|
||||||
Val{String("intel-nullhw")},
|
|
||||||
Val{String("overlay")},
|
|
||||||
Val{String("screenshot")},
|
|
||||||
Val{String("anti-lag")},
|
|
||||||
Val{String("vram-report-limit")},
|
|
||||||
}}},
|
|
||||||
{K: []Ident{Ident("sep")}, V: Val{String(",")}}},
|
|
||||||
}}},
|
|
||||||
{K: String("freedreno-kmds"), V: Val{String("msm,virtio")}},
|
|
||||||
{K: String("amdgpu-virtio"), V: Val{String("true")}}},
|
|
||||||
}},
|
|
||||||
}}}},
|
|
||||||
{K: []Ident{Ident("inputs")}, V: Val{Array{
|
|
||||||
Val{Ident("m4")},
|
|
||||||
Val{Ident("python-packaging")},
|
|
||||||
Val{Ident("python-mako")},
|
|
||||||
Val{Ident("python-pyyaml")},
|
|
||||||
Val{Ident("python-pycparser")},
|
|
||||||
Val{Ident("glslang")},
|
|
||||||
Val{Ident("spirv-llvm-translator")},
|
|
||||||
Val{Ident("zlib")},
|
|
||||||
Val{Ident("zstd")},
|
|
||||||
Val{Ident("gzip")},
|
|
||||||
Val{Ident("ncurses")},
|
|
||||||
Val{Ident("libglvnd")},
|
|
||||||
Val{Ident("libexpat")},
|
|
||||||
Val{Ident("libva")},
|
|
||||||
Val{Ident("libdrm")},
|
|
||||||
Val{Ident("elfutils")},
|
|
||||||
Val{Ident("bison")},
|
|
||||||
Val{Ident("flex")},
|
|
||||||
Val{Ident("lm_sensors")},
|
|
||||||
Val{Ident("libconfig")},
|
|
||||||
Val{Ident("libdisplay-info")},
|
|
||||||
Val{Ident("wayland")},
|
|
||||||
Val{Ident("wayland-protocols")},
|
|
||||||
Val{Ident("libxshmfence")},
|
|
||||||
Val{Ident("libXxf86vm")},
|
|
||||||
Val{Ident("libXrandr")},
|
|
||||||
Val{Ident("libxcb-keysyms")},
|
|
||||||
Val{Ident("libpng")},
|
|
||||||
Val{Ident("libarchive")},
|
|
||||||
Val{Ident("kernel-headers")},
|
|
||||||
}}},
|
|
||||||
{K: []Ident{Ident("runtime")}, V: Val{Array{
|
|
||||||
Val{Ident("llvm")},
|
|
||||||
Val{Ident("libdrm")},
|
|
||||||
Val{Ident("elfutils")},
|
|
||||||
Val{Ident("lm_sensors")},
|
|
||||||
Val{Ident("libdisplay-info")},
|
|
||||||
Val{Ident("wayland")},
|
|
||||||
Val{Ident("libxshmfence")},
|
|
||||||
Val{Ident("libXxf86vm")},
|
|
||||||
Val{Ident("libXrandr")},
|
|
||||||
Val{Ident("libxcb-keysyms")},
|
|
||||||
Val{Ident("libpng")}}}},
|
|
||||||
},
|
|
||||||
}}, nil},
|
|
||||||
}
|
}
|
||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
@@ -342,14 +156,14 @@ f {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkParse(b *testing.B) {
|
func BenchmarkParse(b *testing.B) {
|
||||||
r := strings.NewReader(gccSample)
|
r := strings.NewReader(sample)
|
||||||
for b.Loop() {
|
for b.Loop() {
|
||||||
if _, err := Parse(r); err != nil {
|
if _, err := Parse(r); err != nil {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
b.StopTimer()
|
b.StopTimer()
|
||||||
r.Reset(gccSample)
|
r.Reset(sample)
|
||||||
b.StartTimer()
|
b.StartTimer()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -294,7 +294,7 @@ func TestEvaluateGCC(t *testing.T) {
|
|||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
var gcc Func
|
var gcc Func
|
||||||
if e, err := Parse(strings.NewReader(gccSample)); err != nil {
|
if e, err := Parse(strings.NewReader(sample)); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
} else {
|
} else {
|
||||||
gcc = e[0].(Func)
|
gcc = e[0].(Func)
|
||||||
@@ -421,7 +421,7 @@ func TestEvaluateGCC(t *testing.T) {
|
|||||||
|
|
||||||
func BenchmarkEvaluate(b *testing.B) {
|
func BenchmarkEvaluate(b *testing.B) {
|
||||||
var gcc Func
|
var gcc Func
|
||||||
if e, err := Parse(strings.NewReader(gccSample)); err != nil {
|
if e, err := Parse(strings.NewReader(sample)); err != nil {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
} else {
|
} else {
|
||||||
gcc = e[0].(Func)
|
gcc = e[0].(Func)
|
||||||
|
|||||||
Vendored
+35
-35
@@ -1,19 +1,19 @@
|
|||||||
package gcc {
|
package gcc {
|
||||||
description = "The GNU Compiler Collection"
|
description = "The GNU Compiler Collection";
|
||||||
website = "https://www.gnu.org/software/gcc"
|
website = "https://www.gnu.org/software/gcc";
|
||||||
anitya = 6502
|
anitya = 6502;
|
||||||
|
|
||||||
version# = "16.1.0"
|
version# = "16.1.0";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/"+
|
url = "https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/"+
|
||||||
"gcc-"+version+"/gcc-"+version+".tar.gz"
|
"gcc-"+version+"/gcc-"+version+".tar.gz";
|
||||||
checksum = "4ASoWbxaA2FW7PAB0zzHDPC5XnNhyaAyjtDPpGzceSLeYnEIXsNYZR3PA_Zu5P0K"
|
checksum = "4ASoWbxaA2FW7PAB0zzHDPC5XnNhyaAyjtDPpGzceSLeYnEIXsNYZR3PA_Zu5P0K";
|
||||||
compress = gzip
|
compress = gzip;
|
||||||
}
|
};
|
||||||
patches = [
|
patches = [
|
||||||
"musl-off64_t-loff_t.patch"
|
"musl-off64_t-loff_t.patch",
|
||||||
"musl-legacy-lfs.patch"
|
"musl-legacy-lfs.patch",
|
||||||
]
|
];
|
||||||
|
|
||||||
// GCC spends most of its time in its many configure scripts, however
|
// GCC spends most of its time in its many configure scripts, however
|
||||||
// it also saturates the CPU for a consequential amount of time.
|
// it also saturates the CPU for a consequential amount of time.
|
||||||
@@ -21,37 +21,37 @@ package gcc {
|
|||||||
|
|
||||||
exec = make {
|
exec = make {
|
||||||
configure = {
|
configure = {
|
||||||
"disable-multilib"
|
"disable-multilib";
|
||||||
"enable-default-pie"
|
"enable-default-pie";
|
||||||
"disable-nls"
|
"disable-nls";
|
||||||
"with-gnu-as"
|
"with-gnu-as";
|
||||||
"with-gnu-ld"
|
"with-gnu-ld";
|
||||||
"with-system-zlib"
|
"with-system-zlib";
|
||||||
"enable-languages": "c,c++,go"
|
"enable-languages": "c,c++,go";
|
||||||
"with-native-system-header-dir": "/system/include"
|
"with-native-system-header-dir": "/system/include";
|
||||||
"with-multilib-list": arch {
|
"with-multilib-list": arch {
|
||||||
amd64, arm64 = "''"
|
amd64, arm64 = "''";
|
||||||
default = unset
|
default = unset;
|
||||||
}
|
};
|
||||||
}
|
};
|
||||||
make = [
|
make = [
|
||||||
"BOOT_CFLAGS='-O2 -g'"
|
"BOOT_CFLAGS='-O2 -g'",
|
||||||
noop { key = value } + "\x00"
|
noop { key = value; } + "\x00",
|
||||||
"bootstrap"
|
"bootstrap",
|
||||||
]
|
];
|
||||||
|
|
||||||
// This toolchain is hacked to pieces, it is not expected to ever work
|
// This toolchain is hacked to pieces, it is not expected to ever work
|
||||||
// well in its current state. That does not matter as long as the
|
// well in its current state. That does not matter as long as the
|
||||||
// toolchain it produces passes its own test suite.
|
// toolchain it produces passes its own test suite.
|
||||||
skip-check = true
|
skip-check = true;
|
||||||
}
|
};
|
||||||
|
|
||||||
inputs = [
|
inputs = [
|
||||||
binutils
|
binutils,
|
||||||
|
|
||||||
mpc
|
mpc,
|
||||||
zlib
|
zlib,
|
||||||
libucontext
|
libucontext,
|
||||||
kernel-headers
|
kernel-headers,
|
||||||
]
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
-139
@@ -1,139 +0,0 @@
|
|||||||
package mesa {
|
|
||||||
description = "open source implementations of OpenGL, OpenGL ES, Vulkan, OpenCL, and more"
|
|
||||||
website = "https://mesa3d.org"
|
|
||||||
anitya = 1970
|
|
||||||
latest = anityaFallback
|
|
||||||
|
|
||||||
version# = "26.2.0"
|
|
||||||
source = remoteGitLab {
|
|
||||||
domain = "gitlab.freedesktop.org"
|
|
||||||
suffix = "mesa/mesa"
|
|
||||||
ref = "mesa-"+version
|
|
||||||
checksum = "UPnIdpo5wUsE938GXY-YyYDzfF62enRoEzCYRyLLPvzBhBbP4wZ8nDiKsjivcs5v"
|
|
||||||
}
|
|
||||||
|
|
||||||
exec = meson {
|
|
||||||
setup = {
|
|
||||||
"platforms": "x11,wayland"
|
|
||||||
"video-codecs": "all"
|
|
||||||
|
|
||||||
"glvnd": "enabled"
|
|
||||||
"gbm": "enabled"
|
|
||||||
"egl": "enabled"
|
|
||||||
|
|
||||||
"gallium-drivers": join {
|
|
||||||
elems = [
|
|
||||||
"asahi" // Apple AGX
|
|
||||||
"crocus" // Intel legacy
|
|
||||||
"etnaviv" // Vivante GPU designs (mostly NXP/Marvell SoCs)
|
|
||||||
"freedreno" // Qualcomm Adreno (all Qualcomm SoCs)
|
|
||||||
"i915" // Intel extra legacy
|
|
||||||
"iris" // new Intel (Broadwell+)
|
|
||||||
"lima" // ARM Mali 4xx
|
|
||||||
"llvmpipe" // software renderer
|
|
||||||
"nouveau" // Nvidia
|
|
||||||
"panfrost" // ARM Mali Midgard and up (T/G series)
|
|
||||||
"r300" // very old AMD
|
|
||||||
"r600" // less old AMD
|
|
||||||
"radeonsi" // new AMD (GCN+)
|
|
||||||
"softpipe" // older software renderer
|
|
||||||
"svga" // VMWare virtualized GPU
|
|
||||||
"tegra" // Nvidia Tegra SoCs
|
|
||||||
"v3d" // Broadcom VC5 (Raspberry Pi 4)
|
|
||||||
"vc4" // Broadcom VC4 (Raspberry Pi 0-3)
|
|
||||||
"virgl" // QEMU virtualized GPU (aka VirGL)
|
|
||||||
"zink" // generic OpenGL over Vulkan, experimental
|
|
||||||
|
|
||||||
// d3d12: WSL emulated GPU (aka Dozen)
|
|
||||||
// ethosu: accelerator
|
|
||||||
// rocket: accelerator
|
|
||||||
]
|
|
||||||
sep = ","
|
|
||||||
}
|
|
||||||
|
|
||||||
"vulkan-drivers": join {
|
|
||||||
elems = [
|
|
||||||
"amd" // AMD (aka RADV)
|
|
||||||
"broadcom" // Broadcom VC5 (Raspberry Pi 4, aka V3D)
|
|
||||||
"freedreno" // Qualcomm Adreno (all Qualcomm SoCs)
|
|
||||||
"intel" // new Intel (aka ANV)
|
|
||||||
"intel_hasvk" // Intel Haswell/Broadwell, "legacy" Vulkan driver (https://www.phoronix.com/news/Intel-HasVK-Drop-Dead-Code)
|
|
||||||
"panfrost" // ARM Mali Midgard and up (T/G series)
|
|
||||||
"swrast" // software renderer (aka Lavapipe)
|
|
||||||
"virtio" // QEMU virtualized GPU (aka VirGL)
|
|
||||||
"imagination" // PowerVR Rogue
|
|
||||||
"asahi" // Apple AGX
|
|
||||||
"gfxstream" // Android virtualized GPU
|
|
||||||
|
|
||||||
// nouveau: Nouveau (aka NVK), requires rust
|
|
||||||
// microsoft-experimental: WSL virtualized GPU (aka DZN/Dozen)
|
|
||||||
// kosmickrisp: macOS-specific
|
|
||||||
]
|
|
||||||
sep = ","
|
|
||||||
}
|
|
||||||
|
|
||||||
"vulkan-layers": join {
|
|
||||||
elems = [
|
|
||||||
"device-select"
|
|
||||||
"intel-nullhw"
|
|
||||||
"overlay"
|
|
||||||
"screenshot"
|
|
||||||
"anti-lag"
|
|
||||||
"vram-report-limit"
|
|
||||||
]
|
|
||||||
sep = ","
|
|
||||||
}
|
|
||||||
|
|
||||||
"freedreno-kmds": "msm,virtio"
|
|
||||||
"amdgpu-virtio": "true"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
inputs = [
|
|
||||||
m4
|
|
||||||
python-packaging
|
|
||||||
python-mako
|
|
||||||
python-pyyaml
|
|
||||||
python-pycparser
|
|
||||||
glslang
|
|
||||||
spirv-llvm-translator
|
|
||||||
|
|
||||||
zlib
|
|
||||||
zstd
|
|
||||||
gzip
|
|
||||||
ncurses
|
|
||||||
libglvnd
|
|
||||||
libexpat
|
|
||||||
libva
|
|
||||||
libdrm
|
|
||||||
elfutils
|
|
||||||
bison
|
|
||||||
flex
|
|
||||||
lm_sensors
|
|
||||||
libconfig
|
|
||||||
libdisplay-info
|
|
||||||
wayland
|
|
||||||
wayland-protocols
|
|
||||||
libxshmfence
|
|
||||||
libXxf86vm
|
|
||||||
libXrandr
|
|
||||||
libxcb-keysyms
|
|
||||||
libpng
|
|
||||||
libarchive
|
|
||||||
kernel-headers
|
|
||||||
]
|
|
||||||
|
|
||||||
runtime = [
|
|
||||||
llvm
|
|
||||||
libdrm
|
|
||||||
elfutils
|
|
||||||
lm_sensors
|
|
||||||
libdisplay-info
|
|
||||||
wayland
|
|
||||||
libxshmfence
|
|
||||||
libXxf86vm
|
|
||||||
libXrandr
|
|
||||||
libxcb-keysyms
|
|
||||||
libpng
|
|
||||||
]
|
|
||||||
}
|
|
||||||
+2
-2
@@ -56,8 +56,8 @@ ln -s \
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
const (
|
const (
|
||||||
version = "1.25.12"
|
version = "1.25.14"
|
||||||
checksum = "XNrGD_boJl2-El_a_T3BuTcMin_WPoU-FGddcNG8dcXA8n2QuxZB7kaUaCWu60QX"
|
checksum = "QKYjKzziCmD1eboU__Oi8VjqbPjaHrHAI9ceWyF3D9ORm7cPHN8muZuiGsoLKjCJ"
|
||||||
)
|
)
|
||||||
meta := Metadata{
|
meta := Metadata{
|
||||||
Name: "go-bootstrap",
|
Name: "go-bootstrap",
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ disable_test t4200-rerere
|
|||||||
disable_test t5515-fetch-merge-logic
|
disable_test t5515-fetch-merge-logic
|
||||||
disable_test t4124-apply-ws-rule
|
disable_test t4124-apply-ws-rule
|
||||||
disable_test t3404-rebase-interactive
|
disable_test t3404-rebase-interactive
|
||||||
|
disable_test t7527-builtin-fsmonitor
|
||||||
`;
|
`;
|
||||||
|
|
||||||
check = [
|
check = [
|
||||||
|
|||||||
@@ -3,18 +3,13 @@ package go {
|
|||||||
website = "https://go.dev";
|
website = "https://go.dev";
|
||||||
anitya = 1227;
|
anitya = 1227;
|
||||||
|
|
||||||
version# = "1.26.6";
|
version# = "1.27.0";
|
||||||
source = remoteTar {
|
source = remoteTar {
|
||||||
url = "https://go.dev/dl/go"+version+".src.tar.gz";
|
url = "https://go.dev/dl/go"+version+".src.tar.gz";
|
||||||
checksum = "BJQz9rGJ7ElMsZGURH7lw48Hw0x88RwdQJpINMomtgGCMK3AtwGCxDRkLE9REh5r";
|
checksum = "Ookl2vP6KMfJuxaxX6nXZ1gnL43wZPl5GjpVsrI7IJiB4b3xr1PbnbYIOJ8v5jzG";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
|
||||||
// https://go.dev/issue/77674
|
|
||||||
"746640.patch",
|
|
||||||
];
|
|
||||||
|
|
||||||
env = [
|
env = [
|
||||||
"CC=cc",
|
"CC=cc",
|
||||||
"GOCACHE=/tmp/gocache",
|
"GOCACHE=/tmp/gocache",
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
From 45929774c3d5c084cc478afba63c77cf67a68bd7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: khr@golang.org <khr@golang.org>
|
|
||||||
Date: Wed, 18 Feb 2026 09:09:57 -0800
|
|
||||||
Subject: [PATCH] internal/runtime/gc/scan: require popcnt for x86
|
|
||||||
|
|
||||||
The GOAMD64=v1 test disables popcnt instructions, which is a feature
|
|
||||||
this package's amd64 assembly uses.
|
|
||||||
|
|
||||||
Fixes #77674
|
|
||||||
|
|
||||||
Change-Id: I7be9bb665838f5da50275f96ef3df398412bb44a
|
|
||||||
Reviewed-on: https://go-review.googlesource.com/c/go/+/746640
|
|
||||||
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
|
|
||||||
Reviewed-by: Michael Knyszek <mknyszek@google.com>
|
|
||||||
Reviewed-by: Keith Randall <khr@google.com>
|
|
||||||
Auto-Submit: Keith Randall <khr@golang.org>
|
|
||||||
---
|
|
||||||
|
|
||||||
diff --git a/src/internal/runtime/gc/scan/scan_amd64.go b/src/internal/runtime/gc/scan/scan_amd64.go
|
|
||||||
index c03021c7d4..544b237770 100644
|
|
||||||
--- a/src/internal/runtime/gc/scan/scan_amd64.go
|
|
||||||
+++ b/src/internal/runtime/gc/scan/scan_amd64.go
|
|
||||||
@@ -39,4 +39,5 @@ var avx512ScanPackedReqsMet = cpu.X86.HasAVX512VL &&
|
|
||||||
cpu.X86.HasGFNI &&
|
|
||||||
cpu.X86.HasAVX512BITALG &&
|
|
||||||
cpu.X86.HasAVX512DQ && // for kmovb, see #79871
|
|
||||||
- cpu.X86.HasAVX512VBMI
|
|
||||||
+ cpu.X86.HasAVX512VBMI &&
|
|
||||||
+ cpu.X86.HasPOPCNT
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated file; DO NOT EDIT.
|
# Automatically generated file; DO NOT EDIT.
|
||||||
# Linux/x86 6.18.44 Kernel Configuration
|
# Linux/x86 6.18.45 Kernel Configuration
|
||||||
#
|
#
|
||||||
CONFIG_CC_VERSION_TEXT="clang version 22.1.8"
|
CONFIG_CC_VERSION_TEXT="clang version 22.1.8"
|
||||||
CONFIG_GCC_VERSION=0
|
CONFIG_GCC_VERSION=0
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated file; DO NOT EDIT.
|
# Automatically generated file; DO NOT EDIT.
|
||||||
# Linux/arm64 6.18.44 Kernel Configuration
|
# Linux/arm64 6.18.45 Kernel Configuration
|
||||||
#
|
#
|
||||||
CONFIG_CC_VERSION_TEXT="clang version 22.1.8"
|
CONFIG_CC_VERSION_TEXT="clang version 22.1.8"
|
||||||
CONFIG_GCC_VERSION=0
|
CONFIG_GCC_VERSION=0
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ package kernel-source {
|
|||||||
website = "https://kernel.org";
|
website = "https://kernel.org";
|
||||||
exclude = true;
|
exclude = true;
|
||||||
|
|
||||||
version# = "6.18.44";
|
version# = "6.18.45";
|
||||||
output = remoteTar {
|
output = remoteTar {
|
||||||
url = "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/"+
|
url = "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/"+
|
||||||
"snapshot/linux-"+version+".tar.gz";
|
"snapshot/linux-"+version+".tar.gz";
|
||||||
checksum = "yNPGMl3A-EgU6LgD37PAcXIa9iUtP-AmoJuQozfGRSq6Eg1Eq4fdbpKy3iWewU9_";
|
checksum = "yI15OXBcDSWVnozq7ilLiiKMbn2xGIuZWa73luYAjcHK12e8R9n_n_am43hnhNAZ";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# Automatically generated file; DO NOT EDIT.
|
# Automatically generated file; DO NOT EDIT.
|
||||||
# Linux/riscv 6.18.44 Kernel Configuration
|
# Linux/riscv 6.18.45 Kernel Configuration
|
||||||
#
|
#
|
||||||
CONFIG_CC_VERSION_TEXT="clang version 22.1.8"
|
CONFIG_CC_VERSION_TEXT="clang version 22.1.8"
|
||||||
CONFIG_GCC_VERSION=0
|
CONFIG_GCC_VERSION=0
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ package libevdev {
|
|||||||
website = "https://www.freedesktop.org/software/libevdev";
|
website = "https://www.freedesktop.org/software/libevdev";
|
||||||
anitya = 20540;
|
anitya = 20540;
|
||||||
|
|
||||||
version# = "1.13.6";
|
version# = "1.13.7";
|
||||||
source = remoteGitLab {
|
source = remoteGitLab {
|
||||||
domain = "gitlab.freedesktop.org";
|
domain = "gitlab.freedesktop.org";
|
||||||
suffix = "libevdev/libevdev";
|
suffix = "libevdev/libevdev";
|
||||||
ref = "libevdev-"+version;
|
ref = "libevdev-"+version;
|
||||||
checksum = "HJbLafbpqPaKvQitt0t484DiHPeg3t_CNv-45MluNUT66vYIdF7FSfrK0vSpUCdi";
|
checksum = "zmN9kkbYkrwr1YdzeMxlZIuiMkRQ9-mZ9DTcBufMckYWUq2IutSt9ZtRE4Agl75D";
|
||||||
};
|
};
|
||||||
|
|
||||||
exec = meson {
|
exec = meson {
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ package libpsl {
|
|||||||
website = "https://rockdaboot.github.io/libpsl";
|
website = "https://rockdaboot.github.io/libpsl";
|
||||||
anitya = 7305;
|
anitya = 7305;
|
||||||
|
|
||||||
version# = "0.23.2";
|
version# = "0.23.3";
|
||||||
source = remoteGitHubRelease {
|
source = remoteGitHubRelease {
|
||||||
suffix = "rockdaboot/libpsl";
|
suffix = "rockdaboot/libpsl";
|
||||||
tag = version;
|
tag = version;
|
||||||
name = "libpsl-"+version+".tar.gz";
|
name = "libpsl-"+version+".tar.gz";
|
||||||
checksum = "-XIKaQK0QoyzXpwezyvGzDdIBCUTqPyd8jU6axIusrnma-qsYxhLUO1Oycwcelr2";
|
checksum = "DlEm2FHGDe3KaZxWxTgApEVIvxN5nTVs5-XsfomnO9a0EfsS46l7hZZPKGCS2uIf";
|
||||||
compress = gzip;
|
compress = gzip;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -4,12 +4,12 @@ package mesa {
|
|||||||
anitya = 1970;
|
anitya = 1970;
|
||||||
latest = anityaFallback;
|
latest = anityaFallback;
|
||||||
|
|
||||||
version# = "26.2.0";
|
version# = "26.2.1";
|
||||||
source = remoteGitLab {
|
source = remoteGitLab {
|
||||||
domain = "gitlab.freedesktop.org";
|
domain = "gitlab.freedesktop.org";
|
||||||
suffix = "mesa/mesa";
|
suffix = "mesa/mesa";
|
||||||
ref = "mesa-"+version;
|
ref = "mesa-"+version;
|
||||||
checksum = "UPnIdpo5wUsE938GXY-YyYDzfF62enRoEzCYRyLLPvzBhBbP4wZ8nDiKsjivcs5v";
|
checksum = "WZYAysQFZt8KMFAxQheKFZHarR1isgOeSw4LyfqAcmaHwXMCLiVao6eGuEuhJTJv";
|
||||||
};
|
};
|
||||||
|
|
||||||
exec = meson {
|
exec = meson {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ package nss {
|
|||||||
website = "https://firefox-source-docs.mozilla.org/security/nss/index.html";
|
website = "https://firefox-source-docs.mozilla.org/security/nss/index.html";
|
||||||
anitya = 2503;
|
anitya = 2503;
|
||||||
|
|
||||||
version# = "3.126.1";
|
version# = "3.127";
|
||||||
source = remoteGitHub {
|
source = remoteGitHub {
|
||||||
suffix = "nss-dev/nss";
|
suffix = "nss-dev/nss";
|
||||||
tag = "NSS_"+join {
|
tag = "NSS_"+join {
|
||||||
@@ -28,7 +28,7 @@ package nss {
|
|||||||
};
|
};
|
||||||
sep = "_";
|
sep = "_";
|
||||||
}+"_RTM";
|
}+"_RTM";
|
||||||
checksum = "3J7o7P3KlE8Cen4fzHLwvDKA1rrcJ84yBTniJHcIBw59LPT-7Q0NxL2CC4BKGW3F";
|
checksum = "lzeKROXahSWqIgxYtm29lTxIfo-nmNYaS-cE-FFKp1C58wIBhmGhwVsRh-4xiQi7";
|
||||||
};
|
};
|
||||||
extra = [ nspr ];
|
extra = [ nspr ];
|
||||||
|
|
||||||
|
|||||||
@@ -197,11 +197,11 @@ package python-vcs-versioning {
|
|||||||
website = "https://setuptools-scm.readthedocs.io/en/latest";
|
website = "https://setuptools-scm.readthedocs.io/en/latest";
|
||||||
anitya = 389421;
|
anitya = 389421;
|
||||||
|
|
||||||
version# = "2.2.4";
|
version# = "2.3.1";
|
||||||
source = remoteGitHub {
|
source = remoteGitHub {
|
||||||
suffix = "pypa/setuptools-scm";
|
suffix = "pypa/setuptools-scm";
|
||||||
tag = "vcs-versioning-v"+version;
|
tag = "vcs-versioning-v"+version;
|
||||||
checksum = "HJ63LCMRd-KkXI1dWwBzK1AwkmjNZGISbhaJ7TbAlbI2eC55aX6i640n3Rt4RUMY";
|
checksum = "rcbu8LlWlY6jmhC95pfnEKgGQuRxHY8_Pvo2jjmlJWSlyHSs1tFIRQ_FoMfi8YXo";
|
||||||
};
|
};
|
||||||
|
|
||||||
env = [
|
env = [
|
||||||
@@ -449,11 +449,11 @@ package python-pygments {
|
|||||||
website = "https://pygments.org";
|
website = "https://pygments.org";
|
||||||
anitya = 3986;
|
anitya = 3986;
|
||||||
|
|
||||||
version# = "2.20.0";
|
version# = "2.21.0";
|
||||||
source = remoteGitHub {
|
source = remoteGitHub {
|
||||||
suffix = "pygments/pygments";
|
suffix = "pygments/pygments";
|
||||||
tag = version;
|
tag = version;
|
||||||
checksum = "L-2P6vn7c_CNZYliE5CJAWLxO1ziDQVVkf8bnZbHj8aSCQ43oWv11wC9KzU9MeCa";
|
checksum = "a9lSiHKLk_wA_rhaSaegYFhslE7L8GdqtIsbU3nbAk9A0xxkw0KvZOSNle4FZENu";
|
||||||
};
|
};
|
||||||
|
|
||||||
exec = pip {
|
exec = pip {
|
||||||
@@ -568,6 +568,7 @@ package python-mako {
|
|||||||
checksum = "OYVVx9PxvZLSvA1C-lX-xElq5TvThYRElzDDKUHYU1tZMM7XlCtHSMGmdgqlbYxd";
|
checksum = "OYVVx9PxvZLSvA1C-lX-xElq5TvThYRElzDDKUHYU1tZMM7XlCtHSMGmdgqlbYxd";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
early = "rm test/test_exceptions.py";
|
||||||
exec = pip {};
|
exec = pip {};
|
||||||
|
|
||||||
inputs = [
|
inputs = [
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ package strace {
|
|||||||
website = "https://strace.io";
|
website = "https://strace.io";
|
||||||
anitya = 4897;
|
anitya = 4897;
|
||||||
|
|
||||||
version# = "7.1";
|
version# = "7.2";
|
||||||
source = remoteGit {
|
source = remoteGit {
|
||||||
url = "https://github.com/strace/strace.git";
|
url = "https://github.com/strace/strace.git";
|
||||||
tag = "v"+version;
|
tag = "v"+version;
|
||||||
checksum = "vGwgAAi_mGsoICDYHK9Vhbn2hBR0JIoUEkCKhLA2JHFg8NFvGsYEWGIafdnsN0_v";
|
checksum = "_vIfkx9C8Q-F4Q1WE1jBMPFeDv3f2h-L1BTCokKqw3G993H2i5NYtBArIDo2Sx_O";
|
||||||
};
|
};
|
||||||
patches = [
|
patches = [
|
||||||
"tests-musl.patch",
|
"tests-musl.patch",
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ package tamago {
|
|||||||
website = "https://github.com/usbarmory/tamago-go";
|
website = "https://github.com/usbarmory/tamago-go";
|
||||||
anitya = 388872;
|
anitya = 388872;
|
||||||
|
|
||||||
version# = "1.26.5";
|
version# = "1.27.0";
|
||||||
source = remoteGitHub {
|
source = remoteGitHub {
|
||||||
suffix = "usbarmory/tamago-go";
|
suffix = "usbarmory/tamago-go";
|
||||||
tag = "tamago-go"+version;
|
tag = "tamago-go"+version;
|
||||||
checksum = "QESl24dveM1jniFx_PkPGbxQe7daHcnMlMQXC1MXz6EEmxSeYyrI-tMLi0NEu8QE";
|
checksum = "PV8a5fccqZifVUG7HJ6jTFk_0x6YIu1BSgYByCdJoTllm4NuQc9-Ngk_nuS7Nb3i";
|
||||||
};
|
};
|
||||||
|
|
||||||
env = [
|
env = [
|
||||||
@@ -29,9 +29,6 @@ chmod -R +w ..
|
|||||||
sed -i \
|
sed -i \
|
||||||
's,/lib/ld-musl-` + linuxArch + `.so.1,/system/bin/linker,' \
|
's,/lib/ld-musl-` + linuxArch + `.so.1,/system/bin/linker,' \
|
||||||
cmd/link/internal/` + arch + `/obj.go
|
cmd/link/internal/` + arch + `/obj.go
|
||||||
sed -i \
|
|
||||||
's/cpu.X86.HasAVX512VBMI/& \&\& cpu.X86.HasPOPCNT/' \
|
|
||||||
internal/runtime/gc/scan/scan_amd64.go
|
|
||||||
|
|
||||||
rm \
|
rm \
|
||||||
os/root_unix_test.go \
|
os/root_unix_test.go \
|
||||||
|
|||||||
@@ -695,12 +695,12 @@ package xserver {
|
|||||||
website = "https://gitlab.freedesktop.org/xorg/xserver";
|
website = "https://gitlab.freedesktop.org/xorg/xserver";
|
||||||
anitya = 5250;
|
anitya = 5250;
|
||||||
|
|
||||||
version# = "21.1.24";
|
version# = "26.0.99.901";
|
||||||
source = remoteGitLab {
|
source = remoteGitLab {
|
||||||
domain = "gitlab.freedesktop.org";
|
domain = "gitlab.freedesktop.org";
|
||||||
suffix = "xorg/xserver";
|
suffix = "xorg/xserver";
|
||||||
ref = "xorg-server-"+version;
|
ref = "xorg-server-"+version;
|
||||||
checksum = "ueBiwKIOHZkSmJPzxAeze_SJHt4QxEHQTk1kMkic-GYxC7Fs41ckwgVzcwr2N3ca";
|
checksum = "2Liwqj-tu_NuD8BuWZR0PyYVJ_A0nj_sgx-LZWtdVpKAKQHtN-dSWCl-IPVOlcHG";
|
||||||
};
|
};
|
||||||
|
|
||||||
exec = meson {
|
exec = meson {
|
||||||
@@ -773,12 +773,12 @@ package xwayland {
|
|||||||
website = "https://gitlab.freedesktop.org/xorg/xserver";
|
website = "https://gitlab.freedesktop.org/xorg/xserver";
|
||||||
anitya = 180949;
|
anitya = 180949;
|
||||||
|
|
||||||
version# = "24.1.13";
|
version# = "26.0.99.901";
|
||||||
source = remoteGitLab {
|
source = remoteGitLab {
|
||||||
domain = "gitlab.freedesktop.org";
|
domain = "gitlab.freedesktop.org";
|
||||||
suffix = "xorg/xserver";
|
suffix = "xorg/xserver";
|
||||||
ref = "xwayland-"+version;
|
ref = "xwayland-"+version;
|
||||||
checksum = "dZpEGlcPJ72TBCtnR1mvquvN4iUypGvGJ4tN9hpa-ljux28EkSCQRlQHLPRijz36";
|
checksum = "Vgtnwme2HU3CCeLE_xNScV_uJ55kPMremaOyVWRUFaRpwpaOQxsNB2fde_9Rx5zm";
|
||||||
};
|
};
|
||||||
|
|
||||||
bin = [ "bash" ];
|
bin = [ "bash" ];
|
||||||
|
|||||||
Generated
+6
-6
@@ -7,11 +7,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1780361225,
|
"lastModified": 1787146702,
|
||||||
"narHash": "sha256-wnV9ttf4fPWNonBIQmvlrSlNpQYgx5HgWWd007mwIFA=",
|
"narHash": "sha256-YbRcLdU/yK4gWsQg7V8WTKZHfXL33g8+wSFUX3wyevs=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "e28654b71096e08c019d4861ca26acb646f583d8",
|
"rev": "173b7e8d40fdc8c296a9c99854314f17a3a1704c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -23,11 +23,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1780453794,
|
"lastModified": 1787101114,
|
||||||
"narHash": "sha256-bXMRa9VTsHSPXL4Cw8R6JJLQeY3Y/IP4+YJCYVmQ7FY=",
|
"narHash": "sha256-gwrPcFf/rDjHPaVflbDZ040ZDmBTRj/7+s8ZmE2SaIM=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "6b316287bae2ee04c9b93c8c858d930fd07d7338",
|
"rev": "b18a4b905f8d028dc4476412e6d6891728695379",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
+2
-2
@@ -99,7 +99,7 @@
|
|||||||
hakurei = pkgs.pkgsStatic.callPackage ./package.nix {
|
hakurei = pkgs.pkgsStatic.callPackage ./package.nix {
|
||||||
inherit (pkgs)
|
inherit (pkgs)
|
||||||
# passthru.buildInputs
|
# passthru.buildInputs
|
||||||
go_1_26
|
go_1_27
|
||||||
clang
|
clang
|
||||||
|
|
||||||
# nativeBuildInputs
|
# nativeBuildInputs
|
||||||
@@ -180,7 +180,7 @@
|
|||||||
let
|
let
|
||||||
# this is used for interactive vm testing during development, where tests might be broken
|
# this is used for interactive vm testing during development, where tests might be broken
|
||||||
package = self.packages.${pkgs.stdenv.hostPlatform.system}.hakurei.override {
|
package = self.packages.${pkgs.stdenv.hostPlatform.system}.hakurei.override {
|
||||||
buildGo126Module = previousArgs: pkgs.pkgsStatic.buildGo126Module (previousArgs // { doCheck = false; });
|
buildGo127Module = previousArgs: pkgs.pkgsStatic.buildGo127Module (previousArgs // { doCheck = false; });
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|||||||
+6
-6
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
stdenv,
|
stdenv,
|
||||||
buildGo126Module,
|
buildGo127Module,
|
||||||
makeBinaryWrapper,
|
makeBinaryWrapper,
|
||||||
xdg-dbus-proxy,
|
xdg-dbus-proxy,
|
||||||
pkg-config,
|
pkg-config,
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
fuse3,
|
fuse3,
|
||||||
|
|
||||||
# for passthru.buildInputs
|
# for passthru.buildInputs
|
||||||
go_1_26,
|
go_1_27,
|
||||||
clang,
|
clang,
|
||||||
xorgproto,
|
xorgproto,
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
withStatic ? stdenv.hostPlatform.isStatic,
|
withStatic ? stdenv.hostPlatform.isStatic,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildGo126Module rec {
|
buildGo127Module rec {
|
||||||
pname = "hakurei";
|
pname = "hakurei";
|
||||||
version = with lib.strings; removePrefix "v" (trim (builtins.readFile ../cmd/dist/VERSION));
|
version = with lib.strings; removePrefix "v" (trim (builtins.readFile ../cmd/dist/VERSION));
|
||||||
|
|
||||||
@@ -55,7 +55,7 @@ buildGo126Module rec {
|
|||||||
];
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
go_1_26
|
go_1_27
|
||||||
pkg-config
|
pkg-config
|
||||||
wayland-scanner
|
wayland-scanner
|
||||||
];
|
];
|
||||||
@@ -126,10 +126,10 @@ buildGo126Module rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
go = go_1_26;
|
go = go_1_27;
|
||||||
|
|
||||||
targetPkgs = [
|
targetPkgs = [
|
||||||
go_1_26
|
go_1_27
|
||||||
clang
|
clang
|
||||||
xorgproto
|
xorgproto
|
||||||
util-linux
|
util-linux
|
||||||
|
|||||||
@@ -46,8 +46,10 @@ def wait_for_window(pattern):
|
|||||||
|
|
||||||
def collect_state_ui(name):
|
def collect_state_ui(name):
|
||||||
swaymsg(f"exec hakurei ps > '/tmp/{name}.ps'")
|
swaymsg(f"exec hakurei ps > '/tmp/{name}.ps'")
|
||||||
|
machine.wait_for_file(f"/tmp/{name}.ps")
|
||||||
machine.copy_from_vm(f"/tmp/{name}.ps", "")
|
machine.copy_from_vm(f"/tmp/{name}.ps", "")
|
||||||
swaymsg(f"exec hakurei --json ps > '/tmp/{name}.json'")
|
swaymsg(f"exec hakurei --json ps > '/tmp/{name}.json'")
|
||||||
|
machine.wait_for_file(f"/tmp/{name}.json")
|
||||||
machine.copy_from_vm(f"/tmp/{name}.json", "")
|
machine.copy_from_vm(f"/tmp/{name}.json", "")
|
||||||
machine.screenshot(name)
|
machine.screenshot(name)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user