MoinMoin Logo
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Navigation

  • Start
  • Sitemap

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Revision 3 as of 2020-06-20 23:01:42
  • golang

golang

Go programmmig language

package main

import "fmt"

func main() {
        fmt.Println("Hello, 世界")
}

WebAssembly

  • On debian buster
    • sudo apt install golang # go version go1.11.6 linux/amd64
    • sudo apt install golang-src
  • mkdir ~/wasmgotest

build.sh

go build -o main main.go
GOOS=js GOARCH=wasm go build -o main.wasm main.go

index.html

<html>
        <head>
                <meta charset="utf-8"/>
                <script src="wasm_exec.js"></script>
                <script>
                        const go = new Go();
                        WebAssembly.instantiateStreaming(fetch("main.wasm"), go.importObject).then((result) => {
                                go.run(result.instance);
                        });
                </script>
        </head>
        <body>
        <h1 id="datetimeHeading">5555</h1>
        <canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;">
        </canvas> 
        </body>
</html>

main.go

package main

//import "fmt"
import "time"
import "syscall/js"

func showTime(){
  for x := 0; ; x++ { // infinite loop
    currentTime := time.Now()
    // console.log in the browser
    //fmt.Printf("Hello, WebAssembly %s  ! \n" , currentTime.String() )
    document := js.Global().Get("document")
    document.Call("getElementById", "datetimeHeading").Set("innerHTML", currentTime.String())
    //document.getElementById("datetimeHeading").innerHTML="aaa"
    time.Sleep( 2 * time.Second  )
  }
}

func main() {
  go showTime()  // go routine executes the called function as a lightweight thread 

  document := js.Global().Get("document")
  c := document.Call("getElementById","myCanvas")
  ctx := c.Call("getContext","2d")
  ctx.Call("beginPath")
  ctx.Call("arc","95", "50", "40", "0", "6.283")
  ctx.Call("stroke");

  time.Sleep(24*time.Hour)
}
  • cp /usr/share/go-1.11/misc/wasm/wasm_exec.js .
  • Check on the browser file:///home/vitor/wasmgotest/index.html

  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01