Skip to content

Commit 909d19d

Browse files
committed
WIP: debug info
1 parent 9a150f5 commit 909d19d

File tree

9 files changed

+66
-35
lines changed

9 files changed

+66
-35
lines changed

cmd/editor/main.go

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,12 @@ func main() {
4646

4747
consoleBuilder := terminal.New(newXTermFunc)
4848
taskConsoleBuilder := taskconsole.New()
49-
win, tasks := ide.New(app, editorBuilder, consoleBuilder, taskConsoleBuilder)
49+
win, _ := ide.New(app, editorBuilder, consoleBuilder, taskConsoleBuilder)
5050

51-
if _, err := tasks.Start(goBinaryPath, "go", "version"); err != nil {
52-
log.Error("Failed to start go version: ", err)
53-
return
54-
}
51+
//if _, err := tasks.Start(goBinaryPath, "go", "version"); err != nil {
52+
//log.Error("Failed to start go version: ", err)
53+
//return
54+
//}
5555

5656
if err := os.MkdirAll("playground", 0700); err != nil {
5757
log.Error("Failed to make playground dir", err)
@@ -62,15 +62,17 @@ func main() {
6262
return
6363
}
6464

65-
_, err := os.Stat("go.mod")
66-
makeNewModule := os.IsNotExist(err)
67-
if makeNewModule {
68-
_, err := tasks.Start(goBinaryPath, "go", "mod", "init", "playground")
69-
if err != nil {
70-
log.Error("Failed to start module init: ", err)
71-
return
65+
/*
66+
_, err := os.Stat("go.mod")
67+
makeNewModule := os.IsNotExist(err)
68+
if makeNewModule {
69+
_, err := tasks.Start(goBinaryPath, "go", "mod", "init", "playground")
70+
if err != nil {
71+
log.Error("Failed to start module init: ", err)
72+
return
73+
}
7274
}
73-
}
75+
*/
7476

7577
if _, err := os.Stat("main.go"); os.IsNotExist(err) {
7678
mainGoContents := `package main
@@ -92,17 +94,19 @@ func main() {
9294
}
9395
}
9496

95-
if makeNewModule {
96-
_, err := tasks.Start(goBinaryPath, "go", "mod", "tidy")
97-
if err != nil {
98-
log.Error("Failed to start go mod tidy: ", err)
99-
return
97+
/*
98+
if makeNewModule {
99+
_, err := tasks.Start(goBinaryPath, "go", "mod", "tidy")
100+
if err != nil {
101+
log.Error("Failed to start go mod tidy: ", err)
102+
return
103+
}
100104
}
101-
}
105+
*/
102106

103-
win.NewConsole()
107+
//win.NewConsole()
104108
editor := win.NewEditor()
105-
err = editor.OpenFile("main.go")
109+
err := editor.OpenFile("main.go")
106110
if err != nil {
107111
log.Error("Failed to open main.go in editor: ", err)
108112
}

internal/js/process/process.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,11 @@ func (p *workerProcess) Start() (err error) {
9595
message["files"] = true
9696
}
9797

98-
log.Warn("Starting process:", message)
98+
log.Print("Starting process:", message)
99+
log.PrintJSValues("kernel start proc message", message)
100+
// TODO is p.kernel definitely the right port? this needs to be received by the kernel, but it's not making it there. in fact, seems like _nothing_ makes it there
99101
resp, err := jsworker.DoRequest(context.Background(), p.kernel, js.ValueOf(message), nil)
100-
log.Warn("Process started:", resp, err)
102+
log.Print("Process started:", resp, err)
101103
if err != nil {
102104
p.startErr = err
103105
return err

internal/js/process/spawn.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@ import (
77

88
"github.com/hack-pad/hackpad/internal/fs"
99
"github.com/hack-pad/hackpad/internal/interop"
10+
"github.com/hack-pad/hackpad/internal/log"
1011
"github.com/hack-pad/hackpad/internal/process"
1112
"github.com/pkg/errors"
1213
)
1314

1415
func spawn(args []js.Value) (interface{}, error) {
16+
log.Warn("spawn call received")
1517
if len(args) == 0 {
1618
return nil, errors.Errorf("Invalid number of args, expected command name: %v", args)
1719
}

internal/jsworker/message_port.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,12 @@ func wrapMessagePort(v js.Value, source, destination string) (*MessagePort, erro
4545
func (p *MessagePort) debug(args ...interface{}) {
4646
destination := fmt.Sprintf("(%s->%s) ", p.sourceName, p.destinationName)
4747
args = append([]interface{}{destination}, args...)
48-
log.Print(args...)
48+
callers := log.Callers(1, 10)
49+
var groupArgs [][]interface{}
50+
for _, c := range callers {
51+
groupArgs = append(groupArgs, []interface{}{c})
52+
}
53+
log.PrintGroup(fmt.Sprintln(args...), groupArgs...)
4954
}
5055

5156
func (p *MessagePort) PostMessage(message js.Value, transfers []js.Value) (err error) {

internal/jsworker/request.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ func DoRequest(ctx context.Context, port *MessagePort, req js.Value, transfers [
8181
id := newID()
8282
var resp messageRequest
8383
err := port.Listen(ctx, func(ev MessageEvent, err error) {
84+
log.Print("Port Listen DoRequest")
8485
message := parseMessageRequest(ev.Data)
8586
if message.IsRequest { // only listen for responses, ignore requests
8687
return
@@ -99,6 +100,7 @@ func DoRequest(ctx context.Context, port *MessagePort, req js.Value, transfers [
99100
return js.Value{}, err
100101
}
101102

103+
log.Print("Listening DoRequest")
102104
err = port.PostMessage(messageRequest{
103105
ID: id,
104106
Data: req,
@@ -107,7 +109,9 @@ func DoRequest(ctx context.Context, port *MessagePort, req js.Value, transfers [
107109
if err != nil {
108110
return js.Value{}, err
109111
}
112+
log.Print("Awaiting response")
110113
<-ctx.Done()
114+
log.Print("DoReq response received")
111115
if !receivedResponse {
112116
resp.Err = ctx.Err()
113117
}

internal/kernel/op.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package kernel
33
type Op int
44

55
const (
6-
OpStartProcess Op = iota + 1
6+
OpStartProcess Op = iota + 64 // arbitrarily higher than worker op codes, to help find mistakes
77
OpStartCoprocess
88
OpWaitProcess
99
)

kernel.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,8 @@ func newKernelHandler(workers *jsworker.Manager, port *jsworker.MessagePort) jsw
129129
}
130130

131131
func (k kernelHandler) Handle(req jsworker.RequestData) (response js.Value, transfers []js.Value, responseErr error) {
132+
log.Warn("kernel received message")
133+
panic("how is this not being hit?")
132134
if req.Err != nil {
133135
log.Error("Received error: ", req.Err)
134136
return

main.go

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"syscall/js"
99
"time"
1010

11+
"github.com/hack-pad/hackpad/internal/common"
1112
"github.com/hack-pad/hackpad/internal/global"
1213
"github.com/hack-pad/hackpad/internal/interop"
1314
jsfs "github.com/hack-pad/hackpad/internal/js/fs"
@@ -21,7 +22,7 @@ import (
2122
func main() {
2223
start := time.Now()
2324

24-
processPort, kernelPort, err := jsworker.NewChannel("kernel", "dom")
25+
processPort, kernelPort, err := jsworker.NewChannel("dom", "kernel")
2526
if err != nil {
2627
panic(err)
2728
}
@@ -79,15 +80,26 @@ func main() {
7980
}
8081
log.Printf("Startup took %.2f seconds", time.Since(start).Seconds())
8182

82-
go func() {
83-
v, err := jsprocess.Spawn("editor", []string{"editor", "--editor=editor"}, &process.ProcAttr{
84-
SameWorker: true,
85-
})
86-
if err != nil {
87-
panic(err)
88-
}
89-
log.PrintJSValues("spawned editor:", v)
83+
//go func() {
84+
//v, err := jsprocess.Spawn("editor", []string{"editor", "--editor=editor"}, &process.ProcAttr{
85+
//SameWorker: true,
86+
//})
87+
//if err != nil {
88+
//panic(err)
89+
//}
90+
//log.PrintJSValues("spawned editor:", v)
91+
//}()
92+
93+
err = func() (err error) {
94+
defer common.CatchException(&err)
95+
js.Global().Get("child_process").Call("spawn", "go")
96+
return nil
9097
}()
98+
if err != nil {
99+
log.Error("Failed go command:", err)
100+
panic(err)
101+
}
102+
log.Print("done spawning")
91103

92104
select {}
93105
}

worker_listener.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ func startWorkerListener(kernelPort *jsworker.MessagePort) error {
2323
_ = kernelPort.PostMessage(js.ValueOf("ready"), nil)
2424
},
2525
func(req jsworker.RequestData) (response js.Value, transfers []js.Value, responseErr error) {
26+
log.Warn("DOM worker received message")
2627
if req.Err != nil {
2728
log.Error("Received error: ", req.Err)
2829
return js.Value{}, nil, nil
@@ -72,7 +73,6 @@ func doRequest(data js.Value) (js.Value, []js.Value, error) {
7273

7374
cache := jsBoolProp(data, "cache")
7475
for _, mountPath := range mountPaths {
75-
log.Warn("DOM overlaying FSs: ", mountPath)
7676
err := overlayIDB(context.Background(), mountPath, 0600, cache)
7777
if err != nil {
7878
return js.Value{}, nil, err

0 commit comments

Comments
 (0)