Skip to content

Commit 400a305

Browse files
committed
MUhahahaha
1 parent 609b313 commit 400a305

File tree

3 files changed

+39
-18
lines changed

3 files changed

+39
-18
lines changed

internal/cmd/generate.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ func Generate(ctx context.Context, e Env, dir, filename string, stderr io.Writer
202202
out = combo.Python.Out
203203
req := codeGenRequest(result, combo)
204204
if os.Getenv("WASM") != "" {
205-
resp, err = pythonGenerate(req)
205+
resp, err = pythonGenerate(ctx, req)
206206
} else {
207207
blob, err := req.MarshalVT()
208208
if err != nil {
1.64 MB
Binary file not shown.

internal/cmd/wasm.go

Lines changed: 38 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,43 @@ import (
1717
//go:embed sqlc-codegen-python.wasm
1818
var pythonCodeGen []byte
1919

20-
func pythonGenerate(req *plugin.CodeGenRequest) (*plugin.CodeGenResponse, error) {
20+
//go:embed sqlc-codegen-python.module
21+
var pythonModule []byte
22+
23+
var engine *wasmtime.Engine
24+
var linker *wasmtime.Linker
25+
var module *wasmtime.Module
26+
27+
func init() {
28+
var err error
29+
engine = wasmtime.NewEngine()
30+
module, err = wasmtime.NewModuleDeserialize(engine, pythonModule)
31+
if err != nil {
32+
panic(err)
33+
}
34+
35+
// out, err := module.Serialize()
36+
// if err != nil {
37+
// panic(err)
38+
// }
39+
40+
// err = os.WriteFile("sqlc-codegen-python.module", out, 0644)
41+
// if err != nil {
42+
// panic(err)
43+
// }
44+
45+
linker = wasmtime.NewLinker(engine)
46+
if err := linker.DefineWasi(); err != nil {
47+
panic(err)
48+
}
49+
}
50+
51+
func pythonGenerate(cctx context.Context, req *plugin.CodeGenRequest) (*plugin.CodeGenResponse, error) {
2152
stdinBlob, err := req.MarshalVT()
2253
if err != nil {
2354
return nil, err
2455
}
2556

26-
cctx := context.Background()
27-
2857
ctx, task := trace.NewTask(cctx, "pythonGenerate")
2958
defer task.End()
3059

@@ -42,14 +71,6 @@ func pythonGenerate(req *plugin.CodeGenRequest) (*plugin.CodeGenResponse, error)
4271
return nil, fmt.Errorf("write file: %w", err)
4372
}
4473

45-
engine := wasmtime.NewEngine()
46-
linker := wasmtime.NewLinker(engine)
47-
48-
// Link WASI
49-
if err := linker.DefineWasi(); err != nil {
50-
return nil, fmt.Errorf("define wasi: %w", err)
51-
}
52-
5374
// Configure WASI imports to write stdout into a file.
5475
wasiConfig := wasmtime.NewWasiConfig()
5576
wasiConfig.SetStdinFile(stdinPath)
@@ -75,12 +96,12 @@ func pythonGenerate(req *plugin.CodeGenRequest) (*plugin.CodeGenResponse, error)
7596
// return fmt.Errorf("read file: %w", err)
7697
// }
7798

78-
moduRegion := trace.StartRegion(ctx, "wasmtime.NewModule")
79-
module, err := wasmtime.NewModule(store.Engine, pythonCodeGen)
80-
moduRegion.End()
81-
if err != nil {
82-
return nil, fmt.Errorf("define wasi: %w", err)
83-
}
99+
// moduRegion := trace.StartRegion(ctx, "wasmtime.NewModule")
100+
// module, err := wasmtime.NewModule(store.Engine, pythonCodeGen)
101+
// moduRegion.End()
102+
// if err != nil {
103+
// return nil, fmt.Errorf("define wasi: %w", err)
104+
// }
84105

85106
linkRegion := trace.StartRegion(ctx, "linker.Instantiate")
86107
instance, err := linker.Instantiate(store, module)

0 commit comments

Comments
 (0)