generator: use ccgo/v3/lib

Instead of running a ccgo binary, use ccgo/v3/lib directly.

This makes the generation process more contained since the dependency
on ccgo/v3/lib can be tracked in go.mod.
This commit is contained in:
Dan Peterson
2021-03-08 16:31:30 -04:00
parent 2d6e462ccf
commit e11960029f
7 changed files with 4155 additions and 3760 deletions

View File

@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build ignore
// +build generator
package main
@@ -18,6 +18,8 @@ import (
"path/filepath"
"runtime"
"strings"
"modernc.org/ccgo/v3/lib"
)
// gcc
@@ -592,10 +594,11 @@ func makeTestfixture(goos, goarch string, more []string) {
files[i] = filepath.Join(sqliteSrcDir, filepath.FromSlash(v))
}
configure(goos, goarch)
cmd := newCmd(
"ccgo",
task := ccgo.NewTask(
join(
[]string{
"ccgo",
"-DSQLITE_OMIT_LOAD_EXTENSION",
"-DSQLITE_SERIES_CONSTRAINT_VERIFY=1",
"-DSQLITE_SERVER=1",
@@ -623,18 +626,21 @@ func makeTestfixture(goos, goarch string, more []string) {
},
files,
more,
configTest)...,
configTest,
),
nil,
nil,
)
if err := cmd.Run(); err != nil {
if err := task.Main(); err != nil {
fail("%s\n", err)
}
}
func makeSpeedTest(goos, goarch string, more []string) {
cmd := newCmd(
"ccgo",
task := ccgo.NewTask(
join(
[]string{
"ccgo",
"-export-defines", "",
"-o", filepath.FromSlash(fmt.Sprintf("speedtest1/main_%s_%s.go", goos, goarch)),
"-trace-translation-units",
@@ -643,18 +649,21 @@ func makeSpeedTest(goos, goarch string, more []string) {
"-l", "modernc.org/sqlite/lib",
},
more,
configProduction)...,
configProduction,
),
nil,
nil,
)
if err := cmd.Run(); err != nil {
if err := task.Main(); err != nil {
fail("%s\n", err)
}
}
func makeMpTest(goos, goarch string, more []string) {
cmd := newCmd(
"ccgo",
task := ccgo.NewTask(
join(
[]string{
"ccgo",
"-export-defines", "",
"-o", filepath.FromSlash(fmt.Sprintf("internal/mptest/main_%s_%s.go", goos, goarch)),
"-trace-translation-units",
@@ -663,18 +672,21 @@ func makeMpTest(goos, goarch string, more []string) {
"-l", "modernc.org/sqlite/lib",
},
more,
configProduction)...,
configProduction,
),
nil,
nil,
)
if err := cmd.Run(); err != nil {
if err := task.Main(); err != nil {
fail("%s\n", err)
}
}
func makeSqliteProduction(goos, goarch string, more []string) {
cmd := newCmd(
"ccgo",
task := ccgo.NewTask(
join(
[]string{
"ccgo",
"-DSQLITE_PRIVATE=",
"-export-defines", "",
"-export-enums", "",
@@ -687,18 +699,21 @@ func makeSqliteProduction(goos, goarch string, more []string) {
filepath.Join(sqliteDir, "sqlite3.c"),
},
more,
configProduction)...,
configProduction,
),
nil,
nil,
)
if err := cmd.Run(); err != nil {
if err := task.Main(); err != nil {
fail("%s\n", err)
}
}
func makeSqliteTest(goos, goarch string, more []string) {
cmd := newCmd(
"ccgo",
task := ccgo.NewTask(
join(
[]string{
"ccgo",
"-DSQLITE_PRIVATE=",
"-export-defines", "",
"-export-enums", "",
@@ -712,9 +727,12 @@ func makeSqliteTest(goos, goarch string, more []string) {
filepath.Join(sqliteDir, "sqlite3.c"),
},
more,
configTest)...,
configTest,
),
nil,
nil,
)
if err := cmd.Run(); err != nil {
if err := task.Main(); err != nil {
fail("%s\n", err)
}
}

1
go.mod
View File

@@ -4,6 +4,7 @@ go 1.15
require (
github.com/mattn/go-sqlite3 v1.14.6
modernc.org/ccgo/v3 v3.8.20-0.20210308191420-206751e6014b
modernc.org/libc v1.7.13-0.20210308123627-12f642a52bb8
modernc.org/mathutil v1.2.2
modernc.org/tcl v1.4.5-0.20210308125415-9a47e1077a86

41
go.sum
View File

@@ -1,13 +1,48 @@
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/google/go-cmp v0.5.3 h1:x95R7cp+rSeeqAMI2knLtQ0DKlaBhv2NrtrOvafPHRo=
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-sqlite3 v1.14.6 h1:dNPt6NO46WmLVt2DLNpwczCmdV5boIZ6g/tlDrlRUbg=
github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0 h1:OdAsTTz6OkFY5QxjkYwrChwuRruF69c169dPK26NUlk=
github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201126233918-771906719818/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78 h1:M8tBwCtWD/cZV9DZpFYRUgaymAYAr+aIUTWzDaM3uPs=
golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
modernc.org/cc/v3 v3.31.5-0.20210308123301-7a3e9dab9009 h1:u0oCo5b9wyLr++HF3AN9JicGhkUxJhMz51+8TIZH9N0=
modernc.org/cc/v3 v3.31.5-0.20210308123301-7a3e9dab9009/go.mod h1:0R6jl1aZlIl2avnYfbfHBS1QB6/f+16mihBObaBC878=
modernc.org/ccgo/v3 v3.8.20-0.20210308191420-206751e6014b h1:bcpyPqDPI22u/iMOLWCrRpHAgAV9zDHQQf1exZEAI0A=
modernc.org/ccgo/v3 v3.8.20-0.20210308191420-206751e6014b/go.mod h1:nQbgkn8mwzPdp4mm6BT6+p85ugQ7FrGgIcYaE7nSrpY=
modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM=
modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM=
modernc.org/libc v1.7.13-0.20210308123627-12f642a52bb8 h1:m/p34a6Fq+riVqUMSO0swBCBads6NXwzQ5WfTWJfrTA=
@@ -17,7 +52,13 @@ modernc.org/mathutil v1.2.2 h1:+yFk8hBprV+4c0U9GjFtL+dV3N8hOJ8JCituQcMShFY=
modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
modernc.org/memory v1.0.4 h1:utMBrFcpnQDdNsmM6asmyH/FM9TqLPS7XF7otpJmrwM=
modernc.org/memory v1.0.4/go.mod h1:nV2OApxradM3/OVbs2/0OsP6nPfakXpi50C7dcoHXlc=
modernc.org/opt v0.1.1 h1:/0RX92k9vwVeDXj+Xn23DKp2VJubL7k8qNffND6qn3A=
modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
modernc.org/strutil v1.1.0 h1:+1/yCzZxY2pZwwrsbH+4T7BQMoLQ9QiBshRC9eicYsc=
modernc.org/strutil v1.1.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs=
modernc.org/tcl v1.4.5-0.20210308125415-9a47e1077a86 h1:sG15pAGzpWLD9dO6mt5VYEk30vcngjoUD5NjD1C0ztQ=
modernc.org/tcl v1.4.5-0.20210308125415-9a47e1077a86/go.mod h1:gb57hj4pO8fRrK54zveIfFXBaMHK3SKJNWcmRw1cRzc=
modernc.org/token v1.0.0 h1:a0jaWiNMDhDUtqOj09wvjWWAqd3q7WpBulmL9H2egsk=
modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
modernc.org/z v1.0.1-0.20210308123920-1f282aa71362 h1:xUpazXgMcN3whs6DGzAUHVlZyQl4sahj6Lvv2kFj73w=
modernc.org/z v1.0.1-0.20210308123920-1f282aa71362/go.mod h1:8/SRk5C/HgiQWCgXdfpb+1RvhORdkz5sw72d3jjtyqA=

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -11937,7 +11937,7 @@ func testset_orm(tls *libc.TLS) { /* speedtest1.c:1612:6: */
fallthrough
case 'B':
sqlite3.Xsqlite3_bind_text64(tls, g.pStmt, (int32(j + uint32(2))), bp+16 /* &zNum[0] */, uint64(len),
uintptr(0), SQLITE_UTF8)
uintptr(0), uint8(SQLITE_UTF8))
break
}
}