@ttsc/linux-arm 0.13.1 → 0.14.0-dev.20260528.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/go/VERSION +2 -2
- package/bin/go/bin/go +0 -0
- package/bin/go/bin/gofmt +0 -0
- package/bin/go/pkg/tool/linux_arm/asm +0 -0
- package/bin/go/pkg/tool/linux_arm/cgo +0 -0
- package/bin/go/pkg/tool/linux_arm/compile +0 -0
- package/bin/go/pkg/tool/linux_arm/cover +0 -0
- package/bin/go/pkg/tool/linux_arm/fix +0 -0
- package/bin/go/pkg/tool/linux_arm/link +0 -0
- package/bin/go/pkg/tool/linux_arm/preprofile +0 -0
- package/bin/go/pkg/tool/linux_arm/vet +0 -0
- package/bin/go/src/archive/tar/format.go +0 -6
- package/bin/go/src/archive/tar/reader.go +4 -24
- package/bin/go/src/builtin/builtin.go +4 -13
- package/bin/go/src/crypto/fips140/fips140.go +0 -6
- package/bin/go/src/crypto/internal/fips140/drbg/rand.go +75 -1
- package/bin/go/src/crypto/tls/conn.go +3 -7
- package/bin/go/src/crypto/tls/handshake_client_tls13.go +2 -2
- package/bin/go/src/crypto/tls/handshake_server_tls13.go +2 -2
- package/bin/go/src/crypto/tls/key_schedule.go +3 -24
- package/bin/go/src/crypto/x509/constraints.go +33 -33
- package/bin/go/src/crypto/x509/verify.go +13 -28
- package/bin/go/src/go/types/builtins.go +2 -2
- package/bin/go/src/go/types/signature.go +0 -3
- package/bin/go/src/go/types/under.go +3 -3
- package/bin/go/src/go.mod +1 -1
- package/bin/go/src/go.sum +2 -2
- package/bin/go/src/html/template/attr_string.go +2 -3
- package/bin/go/src/html/template/context.go +1 -21
- package/bin/go/src/html/template/element_string.go +2 -3
- package/bin/go/src/html/template/escape.go +2 -16
- package/bin/go/src/html/template/js.go +0 -1
- package/bin/go/src/html/template/state_string.go +3 -5
- package/bin/go/src/html/template/transition.go +6 -43
- package/bin/go/src/internal/buildcfg/zbootstrap.go +1 -1
- package/bin/go/src/internal/godebugs/table.go +0 -1
- package/bin/go/src/internal/poll/fd_windows.go +38 -64
- package/bin/go/src/internal/poll/sendfile_windows.go +1 -3
- package/bin/go/src/internal/runtime/syscall/linux/defs_linux_386.go +0 -1
- package/bin/go/src/internal/runtime/syscall/linux/defs_linux_amd64.go +0 -1
- package/bin/go/src/internal/runtime/syscall/linux/defs_linux_arm.go +0 -1
- package/bin/go/src/internal/runtime/syscall/linux/defs_linux_arm64.go +0 -1
- package/bin/go/src/internal/runtime/syscall/linux/defs_linux_loong64.go +0 -1
- package/bin/go/src/internal/runtime/syscall/linux/defs_linux_mips64x.go +0 -1
- package/bin/go/src/internal/runtime/syscall/linux/defs_linux_mipsx.go +0 -1
- package/bin/go/src/internal/runtime/syscall/linux/defs_linux_ppc64x.go +0 -1
- package/bin/go/src/internal/runtime/syscall/linux/defs_linux_riscv64.go +0 -1
- package/bin/go/src/internal/runtime/syscall/linux/defs_linux_s390x.go +0 -1
- package/bin/go/src/internal/runtime/syscall/linux/syscall_linux.go +0 -14
- package/bin/go/src/internal/syscall/unix/at.go +17 -0
- package/bin/go/src/internal/syscall/unix/at_sysnum_linux.go +1 -2
- package/bin/go/src/internal/syscall/windows/at_windows.go +3 -20
- package/bin/go/src/internal/syscall/windows/registry/key.go +2 -10
- package/bin/go/src/internal/syscall/windows/registry/value.go +1 -5
- package/bin/go/src/internal/syscall/windows/syscall_windows.go +0 -4
- package/bin/go/src/internal/syscall/windows/types_windows.go +0 -82
- package/bin/go/src/internal/syscall/windows/zsyscall_windows.go +0 -27
- package/bin/go/src/net/cgo_unix.go +1 -4
- package/bin/go/src/net/http/doc.go +1 -0
- package/bin/go/src/net/http/h2_bundle.go +3 -3
- package/bin/go/src/net/http/httputil/reverseproxy.go +0 -14
- package/bin/go/src/net/lookup_windows.go +3 -16
- package/bin/go/src/net/mail/message.go +9 -20
- package/bin/go/src/net/sendfile.go +0 -2
- package/bin/go/src/net/sendfile_stub.go +0 -2
- package/bin/go/src/net/sendfile_windows.go +0 -3
- package/bin/go/src/net/url/url.go +16 -22
- package/bin/go/src/os/dir_darwin.go +2 -2
- package/bin/go/src/os/dir_unix.go +2 -2
- package/bin/go/src/os/file.go +3 -0
- package/bin/go/src/os/file_unix.go +5 -9
- package/bin/go/src/os/removeall_at.go +2 -6
- package/bin/go/src/os/removeall_unix.go +8 -0
- package/bin/go/src/os/removeall_windows.go +4 -0
- package/bin/go/src/os/root_unix.go +0 -1
- package/bin/go/src/os/stat.go +0 -3
- package/bin/go/src/reflect/value.go +2 -3
- package/bin/go/src/runtime/defs_linux_386.go +3 -4
- package/bin/go/src/runtime/defs_linux_arm.go +3 -4
- package/bin/go/src/runtime/defs_linux_mips64x.go +1 -1
- package/bin/go/src/runtime/defs_linux_mipsx.go +4 -5
- package/bin/go/src/runtime/malloc.go +53 -1
- package/bin/go/src/runtime/mem.go +9 -104
- package/bin/go/src/runtime/metrics/doc.go +0 -5
- package/bin/go/src/runtime/os_linux.go +0 -62
- package/bin/go/src/runtime/os_linux32.go +24 -14
- package/bin/go/src/runtime/os_linux64.go +0 -2
- package/bin/go/src/runtime/print.go +4 -16
- package/bin/go/src/runtime/race/README +9 -9
- package/bin/go/src/runtime/race/internal/amd64v1/race_darwin.syso +0 -0
- package/bin/go/src/runtime/race/internal/amd64v1/race_freebsd.syso +0 -0
- package/bin/go/src/runtime/race/internal/amd64v1/race_linux.syso +0 -0
- package/bin/go/src/runtime/race/internal/amd64v1/race_windows.syso +0 -0
- package/bin/go/src/runtime/race/internal/amd64v3/race_linux.syso +0 -0
- package/bin/go/src/runtime/race/race_darwin_arm64.syso +0 -0
- package/bin/go/src/runtime/race/race_linux_arm64.syso +0 -0
- package/bin/go/src/runtime/race/race_linux_loong64.syso +0 -0
- package/bin/go/src/runtime/race/race_linux_s390x.syso +0 -0
- package/bin/go/src/syscall/syscall_windows.go +1 -5
- package/bin/go/src/vendor/modules.txt +1 -1
- package/bin/ttsc +0 -0
- package/bin/ttscserver +0 -0
- package/package.json +2 -2
- package/bin/go/src/crypto/internal/fips140/drbg/entropy_fips140.go +0 -97
- package/bin/go/src/crypto/internal/fips140/drbg/entropy_wasm.go +0 -11
- package/bin/go/src/internal/poll/fstatat_unix.go +0 -22
- package/bin/go/src/internal/syscall/unix/fchmodat_linux.go +0 -51
- package/bin/go/src/internal/syscall/unix/fchmodat_other.go +0 -29
- package/bin/go/src/os/statat.go +0 -24
- package/bin/go/src/os/statat_other.go +0 -12
- package/bin/go/src/os/statat_unix.go +0 -20
- package/bin/go/src/runtime/race/internal/amd64v1/race_darwin.patch +0 -63
- package/bin/go/src/runtime/race/internal/amd64v1/race_freebsd.patch +0 -63
- package/bin/go/src/runtime/race/internal/amd64v1/race_linux.patch +0 -63
- package/bin/go/src/runtime/race/internal/amd64v1/race_windows.patch +0 -63
- package/bin/go/src/runtime/race/internal/amd64v3/race_linux.patch +0 -63
- package/bin/go/src/runtime/race/race_darwin_arm64.patch +0 -63
- package/bin/go/src/runtime/race/race_linux_arm64.patch +0 -63
- package/bin/go/src/runtime/race/race_linux_loong64.patch +0 -63
- package/bin/go/src/runtime/race/race_linux_s390x.patch +0 -63
|
@@ -29,12 +29,12 @@ func all(t Type, f func(t, u Type) bool) bool {
|
|
|
29
29
|
// typeset is an iterator over the (type/underlying type) pairs of the
|
|
30
30
|
// specific type terms of the type set implied by t.
|
|
31
31
|
// If t is a type parameter, the implied type set is the type set of t's constraint.
|
|
32
|
-
// In
|
|
32
|
+
// In that case, if there are no specific terms, typeset calls yield with (nil, nil).
|
|
33
33
|
// If t is not a type parameter, the implied type set consists of just t.
|
|
34
|
-
// In any case, typeset is guaranteed to
|
|
34
|
+
// In any case, typeset is guaranteed to call yield at least once.
|
|
35
35
|
func typeset(t Type) iter.Seq2[Type, Type] {
|
|
36
36
|
return func(yield func(t, u Type) bool) {
|
|
37
|
-
all(t, yield)
|
|
37
|
+
_ = all(t, yield)
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
|
package/bin/go/src/go.mod
CHANGED
package/bin/go/src/go.sum
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
golang.org/x/crypto v0.46.1-0.20251210140736-7dacc380ba00 h1:JgcPM1rzpSOZS8y69FQvnY0xN0ciHlpQqwTXJcuZIA4=
|
|
2
2
|
golang.org/x/crypto v0.46.1-0.20251210140736-7dacc380ba00/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0=
|
|
3
|
-
golang.org/x/net v0.47.1-0.
|
|
4
|
-
golang.org/x/net v0.47.1-0.
|
|
3
|
+
golang.org/x/net v0.47.1-0.20251128220604-7c360367ab7e h1:PAAT9cIDvIAIRQVz2txQvUFRt3jOlhiO84ihd8XMGlg=
|
|
4
|
+
golang.org/x/net v0.47.1-0.20251128220604-7c360367ab7e/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
|
|
5
5
|
golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk=
|
|
6
6
|
golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
|
7
7
|
golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU=
|
|
@@ -14,12 +14,11 @@ func _() {
|
|
|
14
14
|
_ = x[attrStyle-3]
|
|
15
15
|
_ = x[attrURL-4]
|
|
16
16
|
_ = x[attrSrcset-5]
|
|
17
|
-
_ = x[attrMetaContent-6]
|
|
18
17
|
}
|
|
19
18
|
|
|
20
|
-
const _attr_name = "
|
|
19
|
+
const _attr_name = "attrNoneattrScriptattrScriptTypeattrStyleattrURLattrSrcset"
|
|
21
20
|
|
|
22
|
-
var _attr_index = [...]uint8{0, 8, 18, 32, 41, 48, 58
|
|
21
|
+
var _attr_index = [...]uint8{0, 8, 18, 32, 41, 48, 58}
|
|
23
22
|
|
|
24
23
|
func (i attr) String() string {
|
|
25
24
|
if i >= attr(len(_attr_index)-1) {
|
|
@@ -6,7 +6,6 @@ package template
|
|
|
6
6
|
|
|
7
7
|
import (
|
|
8
8
|
"fmt"
|
|
9
|
-
"slices"
|
|
10
9
|
"text/template/parse"
|
|
11
10
|
)
|
|
12
11
|
|
|
@@ -38,7 +37,7 @@ func (c context) String() string {
|
|
|
38
37
|
if c.err != nil {
|
|
39
38
|
err = c.err
|
|
40
39
|
}
|
|
41
|
-
return fmt.Sprintf("{%v %v %v %v %v %v %v
|
|
40
|
+
return fmt.Sprintf("{%v %v %v %v %v %v %v}", c.state, c.delim, c.urlPart, c.jsCtx, c.attr, c.element, err)
|
|
42
41
|
}
|
|
43
42
|
|
|
44
43
|
// eq reports whether two contexts are equal.
|
|
@@ -47,7 +46,6 @@ func (c context) eq(d context) bool {
|
|
|
47
46
|
c.delim == d.delim &&
|
|
48
47
|
c.urlPart == d.urlPart &&
|
|
49
48
|
c.jsCtx == d.jsCtx &&
|
|
50
|
-
slices.Equal(c.jsBraceDepth, d.jsBraceDepth) &&
|
|
51
49
|
c.attr == d.attr &&
|
|
52
50
|
c.element == d.element &&
|
|
53
51
|
c.err == d.err
|
|
@@ -70,9 +68,6 @@ func (c context) mangle(templateName string) string {
|
|
|
70
68
|
if c.jsCtx != jsCtxRegexp {
|
|
71
69
|
s += "_" + c.jsCtx.String()
|
|
72
70
|
}
|
|
73
|
-
if c.jsBraceDepth != nil {
|
|
74
|
-
s += fmt.Sprintf("_jsBraceDepth(%v)", c.jsBraceDepth)
|
|
75
|
-
}
|
|
76
71
|
if c.attr != attrNone {
|
|
77
72
|
s += "_" + c.attr.String()
|
|
78
73
|
}
|
|
@@ -82,13 +77,6 @@ func (c context) mangle(templateName string) string {
|
|
|
82
77
|
return s
|
|
83
78
|
}
|
|
84
79
|
|
|
85
|
-
// clone returns a copy of c with the same field values.
|
|
86
|
-
func (c context) clone() context {
|
|
87
|
-
clone := c
|
|
88
|
-
clone.jsBraceDepth = slices.Clone(c.jsBraceDepth)
|
|
89
|
-
return clone
|
|
90
|
-
}
|
|
91
|
-
|
|
92
80
|
// state describes a high-level HTML parser state.
|
|
93
81
|
//
|
|
94
82
|
// It bounds the top of the element stack, and by extension the HTML insertion
|
|
@@ -168,10 +156,6 @@ const (
|
|
|
168
156
|
// stateError is an infectious error state outside any valid
|
|
169
157
|
// HTML/CSS/JS construct.
|
|
170
158
|
stateError
|
|
171
|
-
// stateMetaContent occurs inside a HTML meta element content attribute.
|
|
172
|
-
stateMetaContent
|
|
173
|
-
// stateMetaContentURL occurs inside a "url=" tag in a HTML meta element content attribute.
|
|
174
|
-
stateMetaContentURL
|
|
175
159
|
// stateDead marks unreachable code after a {{break}} or {{continue}}.
|
|
176
160
|
stateDead
|
|
177
161
|
)
|
|
@@ -283,8 +267,6 @@ const (
|
|
|
283
267
|
elementTextarea
|
|
284
268
|
// elementTitle corresponds to the RCDATA <title> element.
|
|
285
269
|
elementTitle
|
|
286
|
-
// elementMeta corresponds to the HTML <meta> element.
|
|
287
|
-
elementMeta
|
|
288
270
|
)
|
|
289
271
|
|
|
290
272
|
//go:generate stringer -type attr
|
|
@@ -306,6 +288,4 @@ const (
|
|
|
306
288
|
attrURL
|
|
307
289
|
// attrSrcset corresponds to a srcset attribute.
|
|
308
290
|
attrSrcset
|
|
309
|
-
// attrMetaContent corresponds to the content attribute in meta HTML element.
|
|
310
|
-
attrMetaContent
|
|
311
291
|
)
|
|
@@ -13,12 +13,11 @@ func _() {
|
|
|
13
13
|
_ = x[elementStyle-2]
|
|
14
14
|
_ = x[elementTextarea-3]
|
|
15
15
|
_ = x[elementTitle-4]
|
|
16
|
-
_ = x[elementMeta-5]
|
|
17
16
|
}
|
|
18
17
|
|
|
19
|
-
const _element_name = "
|
|
18
|
+
const _element_name = "elementNoneelementScriptelementStyleelementTextareaelementTitle"
|
|
20
19
|
|
|
21
|
-
var _element_index = [...]uint8{0, 11, 24, 36, 51, 63
|
|
20
|
+
var _element_index = [...]uint8{0, 11, 24, 36, 51, 63}
|
|
22
21
|
|
|
23
22
|
func (i element) String() string {
|
|
24
23
|
if i >= element(len(_element_index)-1) {
|
|
@@ -166,8 +166,6 @@ func (e *escaper) escape(c context, n parse.Node) context {
|
|
|
166
166
|
|
|
167
167
|
var debugAllowActionJSTmpl = godebug.New("jstmpllitinterp")
|
|
168
168
|
|
|
169
|
-
var htmlmetacontenturlescape = godebug.New("htmlmetacontenturlescape")
|
|
170
|
-
|
|
171
169
|
// escapeAction escapes an action template node.
|
|
172
170
|
func (e *escaper) escapeAction(c context, n *parse.ActionNode) context {
|
|
173
171
|
if len(n.Pipe.Decl) != 0 {
|
|
@@ -225,18 +223,6 @@ func (e *escaper) escapeAction(c context, n *parse.ActionNode) context {
|
|
|
225
223
|
default:
|
|
226
224
|
panic(c.urlPart.String())
|
|
227
225
|
}
|
|
228
|
-
case stateMetaContent:
|
|
229
|
-
// Handled below in delim check.
|
|
230
|
-
case stateMetaContentURL:
|
|
231
|
-
if htmlmetacontenturlescape.Value() != "0" {
|
|
232
|
-
s = append(s, "_html_template_urlfilter")
|
|
233
|
-
} else {
|
|
234
|
-
// We don't have a great place to increment this, since it's hard to
|
|
235
|
-
// know if we actually escape any urls in _html_template_urlfilter,
|
|
236
|
-
// since it has no information about what context it is being
|
|
237
|
-
// executed in etc. This is probably the best we can do.
|
|
238
|
-
htmlmetacontenturlescape.IncNonDefault()
|
|
239
|
-
}
|
|
240
226
|
case stateJS:
|
|
241
227
|
s = append(s, "_html_template_jsvalescaper")
|
|
242
228
|
// A slash after a value starts a div operator.
|
|
@@ -523,7 +509,7 @@ func (e *escaper) escapeBranch(c context, n *parse.BranchNode, nodeName string)
|
|
|
523
509
|
if nodeName == "range" {
|
|
524
510
|
e.rangeContext = &rangeContext{outer: e.rangeContext}
|
|
525
511
|
}
|
|
526
|
-
c0 := e.escapeList(c
|
|
512
|
+
c0 := e.escapeList(c, n.List)
|
|
527
513
|
if nodeName == "range" {
|
|
528
514
|
if c0.state != stateError {
|
|
529
515
|
c0 = joinRange(c0, e.rangeContext)
|
|
@@ -554,7 +540,7 @@ func (e *escaper) escapeBranch(c context, n *parse.BranchNode, nodeName string)
|
|
|
554
540
|
return c0
|
|
555
541
|
}
|
|
556
542
|
}
|
|
557
|
-
c1 := e.escapeList(c
|
|
543
|
+
c1 := e.escapeList(c, n.ElseList)
|
|
558
544
|
return join(c0, c1, n, nodeName)
|
|
559
545
|
}
|
|
560
546
|
|
|
@@ -36,14 +36,12 @@ func _() {
|
|
|
36
36
|
_ = x[stateCSSBlockCmt-25]
|
|
37
37
|
_ = x[stateCSSLineCmt-26]
|
|
38
38
|
_ = x[stateError-27]
|
|
39
|
-
_ = x[
|
|
40
|
-
_ = x[stateMetaContentURL-29]
|
|
41
|
-
_ = x[stateDead-30]
|
|
39
|
+
_ = x[stateDead-28]
|
|
42
40
|
}
|
|
43
41
|
|
|
44
|
-
const _state_name = "
|
|
42
|
+
const _state_name = "stateTextstateTagstateAttrNamestateAfterNamestateBeforeValuestateHTMLCmtstateRCDATAstateAttrstateURLstateSrcsetstateJSstateJSDqStrstateJSSqStrstateJSTmplLitstateJSRegexpstateJSBlockCmtstateJSLineCmtstateJSHTMLOpenCmtstateJSHTMLCloseCmtstateCSSstateCSSDqStrstateCSSSqStrstateCSSDqURLstateCSSSqURLstateCSSURLstateCSSBlockCmtstateCSSLineCmtstateErrorstateDead"
|
|
45
43
|
|
|
46
|
-
var _state_index = [...]uint16{0, 9, 17, 30, 44, 60, 72, 83, 92, 100, 111, 118, 130, 142, 156, 169, 184, 198, 216, 235, 243, 256, 269, 282, 295, 306, 322, 337, 347,
|
|
44
|
+
var _state_index = [...]uint16{0, 9, 17, 30, 44, 60, 72, 83, 92, 100, 111, 118, 130, 142, 156, 169, 184, 198, 216, 235, 243, 256, 269, 282, 295, 306, 322, 337, 347, 356}
|
|
47
45
|
|
|
48
46
|
func (i state) String() string {
|
|
49
47
|
if i >= state(len(_state_index)-1) {
|
|
@@ -23,8 +23,6 @@ var transitionFunc = [...]func(context, []byte) (context, int){
|
|
|
23
23
|
stateRCDATA: tSpecialTagEnd,
|
|
24
24
|
stateAttr: tAttr,
|
|
25
25
|
stateURL: tURL,
|
|
26
|
-
stateMetaContent: tMetaContent,
|
|
27
|
-
stateMetaContentURL: tMetaContentURL,
|
|
28
26
|
stateSrcset: tURL,
|
|
29
27
|
stateJS: tJS,
|
|
30
28
|
stateJSDqStr: tJSDelimited,
|
|
@@ -85,7 +83,6 @@ var elementContentType = [...]state{
|
|
|
85
83
|
elementStyle: stateCSS,
|
|
86
84
|
elementTextarea: stateRCDATA,
|
|
87
85
|
elementTitle: stateRCDATA,
|
|
88
|
-
elementMeta: stateText,
|
|
89
86
|
}
|
|
90
87
|
|
|
91
88
|
// tTag is the context transition function for the tag state.
|
|
@@ -96,11 +93,6 @@ func tTag(c context, s []byte) (context, int) {
|
|
|
96
93
|
return c, len(s)
|
|
97
94
|
}
|
|
98
95
|
if s[i] == '>' {
|
|
99
|
-
// Treat <meta> specially, because it doesn't have an end tag, and we
|
|
100
|
-
// want to transition into the correct state/element for it.
|
|
101
|
-
if c.element == elementMeta {
|
|
102
|
-
return context{state: stateText, element: elementNone}, i + 1
|
|
103
|
-
}
|
|
104
96
|
return context{
|
|
105
97
|
state: elementContentType[c.element],
|
|
106
98
|
element: c.element,
|
|
@@ -121,8 +113,6 @@ func tTag(c context, s []byte) (context, int) {
|
|
|
121
113
|
attrName := strings.ToLower(string(s[i:j]))
|
|
122
114
|
if c.element == elementScript && attrName == "type" {
|
|
123
115
|
attr = attrScriptType
|
|
124
|
-
} else if c.element == elementMeta && attrName == "content" {
|
|
125
|
-
attr = attrMetaContent
|
|
126
116
|
} else {
|
|
127
117
|
switch attrType(attrName) {
|
|
128
118
|
case contentTypeURL:
|
|
@@ -172,13 +162,12 @@ func tAfterName(c context, s []byte) (context, int) {
|
|
|
172
162
|
}
|
|
173
163
|
|
|
174
164
|
var attrStartStates = [...]state{
|
|
175
|
-
attrNone:
|
|
176
|
-
attrScript:
|
|
177
|
-
attrScriptType:
|
|
178
|
-
attrStyle:
|
|
179
|
-
attrURL:
|
|
180
|
-
attrSrcset:
|
|
181
|
-
attrMetaContent: stateMetaContent,
|
|
165
|
+
attrNone: stateAttr,
|
|
166
|
+
attrScript: stateJS,
|
|
167
|
+
attrScriptType: stateAttr,
|
|
168
|
+
attrStyle: stateCSS,
|
|
169
|
+
attrURL: stateURL,
|
|
170
|
+
attrSrcset: stateSrcset,
|
|
182
171
|
}
|
|
183
172
|
|
|
184
173
|
// tBeforeValue is the context transition function for stateBeforeValue.
|
|
@@ -214,7 +203,6 @@ var specialTagEndMarkers = [...][]byte{
|
|
|
214
203
|
elementStyle: []byte("style"),
|
|
215
204
|
elementTextarea: []byte("textarea"),
|
|
216
205
|
elementTitle: []byte("title"),
|
|
217
|
-
elementMeta: []byte(""),
|
|
218
206
|
}
|
|
219
207
|
|
|
220
208
|
var (
|
|
@@ -624,30 +612,6 @@ func tError(c context, s []byte) (context, int) {
|
|
|
624
612
|
return c, len(s)
|
|
625
613
|
}
|
|
626
614
|
|
|
627
|
-
// tMetaContent is the context transition function for the meta content attribute state.
|
|
628
|
-
func tMetaContent(c context, s []byte) (context, int) {
|
|
629
|
-
for i := range len(s) {
|
|
630
|
-
if i+3 <= len(s)-1 && bytes.EqualFold(s[i:i+3], []byte("url")) {
|
|
631
|
-
if j := eatWhiteSpace(s, i+3); j < len(s) && s[j] == '=' {
|
|
632
|
-
c.state = stateMetaContentURL
|
|
633
|
-
return c, j + 1
|
|
634
|
-
}
|
|
635
|
-
}
|
|
636
|
-
}
|
|
637
|
-
return c, len(s)
|
|
638
|
-
}
|
|
639
|
-
|
|
640
|
-
// tMetaContentURL is the context transition function for the "url=" part of a meta content attribute state.
|
|
641
|
-
func tMetaContentURL(c context, s []byte) (context, int) {
|
|
642
|
-
for i := range len(s) {
|
|
643
|
-
if s[i] == ';' {
|
|
644
|
-
c.state = stateMetaContent
|
|
645
|
-
return c, i + 1
|
|
646
|
-
}
|
|
647
|
-
}
|
|
648
|
-
return c, len(s)
|
|
649
|
-
}
|
|
650
|
-
|
|
651
615
|
// eatAttrName returns the largest j such that s[i:j] is an attribute name.
|
|
652
616
|
// It returns an error if s[i:] does not look like it begins with an
|
|
653
617
|
// attribute name, such as encountering a quote mark without a preceding
|
|
@@ -674,7 +638,6 @@ var elementNameMap = map[string]element{
|
|
|
674
638
|
"style": elementStyle,
|
|
675
639
|
"textarea": elementTextarea,
|
|
676
640
|
"title": elementTitle,
|
|
677
|
-
"meta": elementMeta,
|
|
678
641
|
}
|
|
679
642
|
|
|
680
643
|
// asciiAlpha reports whether c is an ASCII letter.
|
|
@@ -15,7 +15,7 @@ const DefaultGORISCV64 = `rva20u64`
|
|
|
15
15
|
const defaultGOEXPERIMENT = ``
|
|
16
16
|
const defaultGO_EXTLINK_ENABLED = ``
|
|
17
17
|
const defaultGO_LDSO = ``
|
|
18
|
-
const version = `go1.26.
|
|
18
|
+
const version = `go1.26.0`
|
|
19
19
|
const defaultGOOS = runtime.GOOS
|
|
20
20
|
const defaultGOARCH = runtime.GOARCH
|
|
21
21
|
const DefaultGOFIPS140 = `off`
|
|
@@ -40,7 +40,6 @@ var All = []Info{
|
|
|
40
40
|
{Name: "gocacheverify", Package: "cmd/go"},
|
|
41
41
|
{Name: "gotestjsonbuildtext", Package: "cmd/go", Changed: 24, Old: "1"},
|
|
42
42
|
{Name: "gotypesalias", Package: "go/types", Changed: 23, Old: "0"},
|
|
43
|
-
{Name: "htmlmetacontenturlescape", Package: "html/template"},
|
|
44
43
|
{Name: "http2client", Package: "net/http"},
|
|
45
44
|
{Name: "http2debug", Package: "net/http", Opaque: true},
|
|
46
45
|
{Name: "http2server", Package: "net/http"},
|
|
@@ -149,7 +149,7 @@ var wsaMsgPool = sync.Pool{
|
|
|
149
149
|
|
|
150
150
|
// newWSAMsg creates a new WSAMsg with the provided parameters.
|
|
151
151
|
// Use [freeWSAMsg] to free it.
|
|
152
|
-
func newWSAMsg(p []byte, oob []byte, flags int,
|
|
152
|
+
func newWSAMsg(p []byte, oob []byte, flags int, unconnected bool) *windows.WSAMsg {
|
|
153
153
|
// The returned object can't be allocated in the stack because it is accessed asynchronously
|
|
154
154
|
// by Windows in between several system calls. If the stack frame is moved while that happens,
|
|
155
155
|
// then Windows may access invalid memory.
|
|
@@ -159,53 +159,39 @@ func newWSAMsg(p []byte, oob []byte, flags int, rsa *wsaRsa) *windows.WSAMsg {
|
|
|
159
159
|
msg := wsaMsgPool.Get().(*windows.WSAMsg)
|
|
160
160
|
msg.Buffers.Len = uint32(len(p))
|
|
161
161
|
msg.Buffers.Buf = unsafe.SliceData(p)
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
Buf: unsafe.SliceData(oob),
|
|
166
|
-
}
|
|
162
|
+
msg.Control = syscall.WSABuf{
|
|
163
|
+
Len: uint32(len(oob)),
|
|
164
|
+
Buf: unsafe.SliceData(oob),
|
|
167
165
|
}
|
|
168
166
|
msg.Flags = uint32(flags)
|
|
169
|
-
if
|
|
170
|
-
msg.Name =
|
|
171
|
-
msg.Namelen =
|
|
167
|
+
if unconnected {
|
|
168
|
+
msg.Name = wsaRsaPool.Get().(*syscall.RawSockaddrAny)
|
|
169
|
+
msg.Namelen = int32(unsafe.Sizeof(syscall.RawSockaddrAny{}))
|
|
172
170
|
}
|
|
173
171
|
return msg
|
|
174
172
|
}
|
|
175
173
|
|
|
176
174
|
func freeWSAMsg(msg *windows.WSAMsg) {
|
|
177
175
|
// Clear pointers to buffers so they can be released by garbage collector.
|
|
178
|
-
msg.Name = nil
|
|
179
|
-
msg.Namelen = 0
|
|
180
176
|
msg.Buffers.Len = 0
|
|
181
177
|
msg.Buffers.Buf = nil
|
|
182
178
|
msg.Control.Len = 0
|
|
183
179
|
msg.Control.Buf = nil
|
|
180
|
+
if msg.Name != nil {
|
|
181
|
+
*msg.Name = syscall.RawSockaddrAny{}
|
|
182
|
+
wsaRsaPool.Put(msg.Name)
|
|
183
|
+
msg.Name = nil
|
|
184
|
+
msg.Namelen = 0
|
|
185
|
+
}
|
|
184
186
|
wsaMsgPool.Put(msg)
|
|
185
187
|
}
|
|
186
188
|
|
|
187
|
-
// wsaRsa bundles a [syscall.RawSockaddrAny] with its length for efficient caching.
|
|
188
|
-
//
|
|
189
|
-
// When used by WSARecvFrom, wsaRsa must be on the heap. See
|
|
190
|
-
// https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsarecvfrom.
|
|
191
|
-
type wsaRsa struct {
|
|
192
|
-
name syscall.RawSockaddrAny
|
|
193
|
-
namelen int32
|
|
194
|
-
}
|
|
195
|
-
|
|
196
189
|
var wsaRsaPool = sync.Pool{
|
|
197
190
|
New: func() any {
|
|
198
|
-
return new(
|
|
191
|
+
return new(syscall.RawSockaddrAny)
|
|
199
192
|
},
|
|
200
193
|
}
|
|
201
194
|
|
|
202
|
-
func newWSARsa() *wsaRsa {
|
|
203
|
-
rsa := wsaRsaPool.Get().(*wsaRsa)
|
|
204
|
-
rsa.name = syscall.RawSockaddrAny{}
|
|
205
|
-
rsa.namelen = int32(unsafe.Sizeof(syscall.RawSockaddrAny{}))
|
|
206
|
-
return rsa
|
|
207
|
-
}
|
|
208
|
-
|
|
209
195
|
var operationPool = sync.Pool{
|
|
210
196
|
New: func() any {
|
|
211
197
|
return new(operation)
|
|
@@ -751,18 +737,19 @@ func (fd *FD) ReadFrom(buf []byte) (int, syscall.Sockaddr, error) {
|
|
|
751
737
|
|
|
752
738
|
fd.pin('r', &buf[0])
|
|
753
739
|
|
|
754
|
-
rsa :=
|
|
740
|
+
rsa := wsaRsaPool.Get().(*syscall.RawSockaddrAny)
|
|
755
741
|
defer wsaRsaPool.Put(rsa)
|
|
756
742
|
n, err := fd.execIO('r', func(o *operation) (qty uint32, err error) {
|
|
743
|
+
rsan := int32(unsafe.Sizeof(*rsa))
|
|
757
744
|
var flags uint32
|
|
758
|
-
err = syscall.WSARecvFrom(fd.Sysfd, newWsaBuf(buf), 1, &qty, &flags,
|
|
745
|
+
err = syscall.WSARecvFrom(fd.Sysfd, newWsaBuf(buf), 1, &qty, &flags, rsa, &rsan, &o.o, nil)
|
|
759
746
|
return qty, err
|
|
760
747
|
})
|
|
761
748
|
err = fd.eofError(n, err)
|
|
762
749
|
if err != nil {
|
|
763
750
|
return n, nil, err
|
|
764
751
|
}
|
|
765
|
-
sa, _ := rsa.
|
|
752
|
+
sa, _ := rsa.Sockaddr()
|
|
766
753
|
return n, sa, nil
|
|
767
754
|
}
|
|
768
755
|
|
|
@@ -781,18 +768,19 @@ func (fd *FD) ReadFromInet4(buf []byte, sa4 *syscall.SockaddrInet4) (int, error)
|
|
|
781
768
|
|
|
782
769
|
fd.pin('r', &buf[0])
|
|
783
770
|
|
|
784
|
-
rsa :=
|
|
771
|
+
rsa := wsaRsaPool.Get().(*syscall.RawSockaddrAny)
|
|
785
772
|
defer wsaRsaPool.Put(rsa)
|
|
786
773
|
n, err := fd.execIO('r', func(o *operation) (qty uint32, err error) {
|
|
774
|
+
rsan := int32(unsafe.Sizeof(*rsa))
|
|
787
775
|
var flags uint32
|
|
788
|
-
err = syscall.WSARecvFrom(fd.Sysfd, newWsaBuf(buf), 1, &qty, &flags,
|
|
776
|
+
err = syscall.WSARecvFrom(fd.Sysfd, newWsaBuf(buf), 1, &qty, &flags, rsa, &rsan, &o.o, nil)
|
|
789
777
|
return qty, err
|
|
790
778
|
})
|
|
791
779
|
err = fd.eofError(n, err)
|
|
792
780
|
if err != nil {
|
|
793
781
|
return n, err
|
|
794
782
|
}
|
|
795
|
-
rawToSockaddrInet4(
|
|
783
|
+
rawToSockaddrInet4(rsa, sa4)
|
|
796
784
|
return n, err
|
|
797
785
|
}
|
|
798
786
|
|
|
@@ -811,18 +799,19 @@ func (fd *FD) ReadFromInet6(buf []byte, sa6 *syscall.SockaddrInet6) (int, error)
|
|
|
811
799
|
|
|
812
800
|
fd.pin('r', &buf[0])
|
|
813
801
|
|
|
814
|
-
rsa :=
|
|
802
|
+
rsa := wsaRsaPool.Get().(*syscall.RawSockaddrAny)
|
|
815
803
|
defer wsaRsaPool.Put(rsa)
|
|
816
804
|
n, err := fd.execIO('r', func(o *operation) (qty uint32, err error) {
|
|
805
|
+
rsan := int32(unsafe.Sizeof(*rsa))
|
|
817
806
|
var flags uint32
|
|
818
|
-
err = syscall.WSARecvFrom(fd.Sysfd, newWsaBuf(buf), 1, &qty, &flags,
|
|
807
|
+
err = syscall.WSARecvFrom(fd.Sysfd, newWsaBuf(buf), 1, &qty, &flags, rsa, &rsan, &o.o, nil)
|
|
819
808
|
return qty, err
|
|
820
809
|
})
|
|
821
810
|
err = fd.eofError(n, err)
|
|
822
811
|
if err != nil {
|
|
823
812
|
return n, err
|
|
824
813
|
}
|
|
825
|
-
rawToSockaddrInet6(
|
|
814
|
+
rawToSockaddrInet6(rsa, sa6)
|
|
826
815
|
return n, err
|
|
827
816
|
}
|
|
828
817
|
|
|
@@ -1382,9 +1371,7 @@ func (fd *FD) ReadMsg(p []byte, oob []byte, flags int) (int, int, int, syscall.S
|
|
|
1382
1371
|
p = p[:maxRW]
|
|
1383
1372
|
}
|
|
1384
1373
|
|
|
1385
|
-
|
|
1386
|
-
defer wsaRsaPool.Put(rsa)
|
|
1387
|
-
msg := newWSAMsg(p, oob, flags, rsa)
|
|
1374
|
+
msg := newWSAMsg(p, oob, flags, true)
|
|
1388
1375
|
defer freeWSAMsg(msg)
|
|
1389
1376
|
n, err := fd.execIO('r', func(o *operation) (qty uint32, err error) {
|
|
1390
1377
|
err = windows.WSARecvMsg(fd.Sysfd, msg, &qty, &o.o, nil)
|
|
@@ -1409,9 +1396,7 @@ func (fd *FD) ReadMsgInet4(p []byte, oob []byte, flags int, sa4 *syscall.Sockadd
|
|
|
1409
1396
|
p = p[:maxRW]
|
|
1410
1397
|
}
|
|
1411
1398
|
|
|
1412
|
-
|
|
1413
|
-
defer wsaRsaPool.Put(rsa)
|
|
1414
|
-
msg := newWSAMsg(p, oob, flags, rsa)
|
|
1399
|
+
msg := newWSAMsg(p, oob, flags, true)
|
|
1415
1400
|
defer freeWSAMsg(msg)
|
|
1416
1401
|
n, err := fd.execIO('r', func(o *operation) (qty uint32, err error) {
|
|
1417
1402
|
err = windows.WSARecvMsg(fd.Sysfd, msg, &qty, &o.o, nil)
|
|
@@ -1435,9 +1420,7 @@ func (fd *FD) ReadMsgInet6(p []byte, oob []byte, flags int, sa6 *syscall.Sockadd
|
|
|
1435
1420
|
p = p[:maxRW]
|
|
1436
1421
|
}
|
|
1437
1422
|
|
|
1438
|
-
|
|
1439
|
-
defer wsaRsaPool.Put(rsa)
|
|
1440
|
-
msg := newWSAMsg(p, oob, flags, rsa)
|
|
1423
|
+
msg := newWSAMsg(p, oob, flags, true)
|
|
1441
1424
|
defer freeWSAMsg(msg)
|
|
1442
1425
|
n, err := fd.execIO('r', func(o *operation) (qty uint32, err error) {
|
|
1443
1426
|
err = windows.WSARecvMsg(fd.Sysfd, msg, &qty, &o.o, nil)
|
|
@@ -1461,18 +1444,15 @@ func (fd *FD) WriteMsg(p []byte, oob []byte, sa syscall.Sockaddr) (int, int, err
|
|
|
1461
1444
|
}
|
|
1462
1445
|
defer fd.writeUnlock()
|
|
1463
1446
|
|
|
1464
|
-
|
|
1447
|
+
msg := newWSAMsg(p, oob, 0, sa != nil)
|
|
1448
|
+
defer freeWSAMsg(msg)
|
|
1465
1449
|
if sa != nil {
|
|
1466
|
-
rsa = newWSARsa()
|
|
1467
|
-
defer wsaRsaPool.Put(rsa)
|
|
1468
1450
|
var err error
|
|
1469
|
-
|
|
1451
|
+
msg.Namelen, err = sockaddrToRaw(msg.Name, sa)
|
|
1470
1452
|
if err != nil {
|
|
1471
1453
|
return 0, 0, err
|
|
1472
1454
|
}
|
|
1473
1455
|
}
|
|
1474
|
-
msg := newWSAMsg(p, oob, 0, rsa)
|
|
1475
|
-
defer freeWSAMsg(msg)
|
|
1476
1456
|
n, err := fd.execIO('w', func(o *operation) (qty uint32, err error) {
|
|
1477
1457
|
err = windows.WSASendMsg(fd.Sysfd, msg, 0, nil, &o.o, nil)
|
|
1478
1458
|
return qty, err
|
|
@@ -1491,14 +1471,11 @@ func (fd *FD) WriteMsgInet4(p []byte, oob []byte, sa *syscall.SockaddrInet4) (in
|
|
|
1491
1471
|
}
|
|
1492
1472
|
defer fd.writeUnlock()
|
|
1493
1473
|
|
|
1494
|
-
|
|
1474
|
+
msg := newWSAMsg(p, oob, 0, sa != nil)
|
|
1475
|
+
defer freeWSAMsg(msg)
|
|
1495
1476
|
if sa != nil {
|
|
1496
|
-
|
|
1497
|
-
defer wsaRsaPool.Put(rsa)
|
|
1498
|
-
rsa.namelen = sockaddrInet4ToRaw(&rsa.name, sa)
|
|
1477
|
+
msg.Namelen = sockaddrInet4ToRaw(msg.Name, sa)
|
|
1499
1478
|
}
|
|
1500
|
-
msg := newWSAMsg(p, oob, 0, rsa)
|
|
1501
|
-
defer freeWSAMsg(msg)
|
|
1502
1479
|
n, err := fd.execIO('w', func(o *operation) (qty uint32, err error) {
|
|
1503
1480
|
err = windows.WSASendMsg(fd.Sysfd, msg, 0, nil, &o.o, nil)
|
|
1504
1481
|
return qty, err
|
|
@@ -1517,14 +1494,11 @@ func (fd *FD) WriteMsgInet6(p []byte, oob []byte, sa *syscall.SockaddrInet6) (in
|
|
|
1517
1494
|
}
|
|
1518
1495
|
defer fd.writeUnlock()
|
|
1519
1496
|
|
|
1520
|
-
|
|
1497
|
+
msg := newWSAMsg(p, oob, 0, sa != nil)
|
|
1498
|
+
defer freeWSAMsg(msg)
|
|
1521
1499
|
if sa != nil {
|
|
1522
|
-
|
|
1523
|
-
defer wsaRsaPool.Put(rsa)
|
|
1524
|
-
rsa.namelen = sockaddrInet6ToRaw(&rsa.name, sa)
|
|
1500
|
+
msg.Namelen = sockaddrInet6ToRaw(msg.Name, sa)
|
|
1525
1501
|
}
|
|
1526
|
-
msg := newWSAMsg(p, oob, 0, rsa)
|
|
1527
|
-
defer freeWSAMsg(msg)
|
|
1528
1502
|
n, err := fd.execIO('w', func(o *operation) (qty uint32, err error) {
|
|
1529
1503
|
err = windows.WSASendMsg(fd.Sysfd, msg, 0, nil, &o.o, nil)
|
|
1530
1504
|
return qty, err
|
|
@@ -68,10 +68,8 @@ func SendFile(fd *FD, src uintptr, size int64) (written int64, err error, handle
|
|
|
68
68
|
chunkSize = size
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
fd.setOffset(startpos + written)
|
|
71
72
|
n, err := fd.execIO('w', func(o *operation) (uint32, error) {
|
|
72
|
-
off := startpos + written
|
|
73
|
-
o.o.OffsetHigh = uint32(off >> 32)
|
|
74
|
-
o.o.Offset = uint32(off)
|
|
75
73
|
err := syscall.TransmitFile(fd.Sysfd, hsrc, uint32(chunkSize), 0, &o.o, nil, syscall.TF_WRITE_BEHIND)
|
|
76
74
|
if err != nil {
|
|
77
75
|
return 0, err
|