77 lines
2.2 KiB
Go
77 lines
2.2 KiB
Go
// This is free software for the public good of a permacomputer hosted at
|
|
// permacomputer.com, an always-on computer by the people, for the people.
|
|
// One which is durable, easy to repair, & distributed like tap water
|
|
// for machine learning intelligence.
|
|
//
|
|
// The permacomputer is community-owned infrastructure optimized around
|
|
// four values:
|
|
//
|
|
// TRUTH First principles, math & science, open source code freely distributed
|
|
// FREEDOM Voluntary partnerships, freedom from tyranny & corporate control
|
|
// HARMONY Minimal waste, self-renewing systems with diverse thriving connections
|
|
// LOVE Be yourself without hurting others, cooperation through natural law
|
|
//
|
|
// This software contributes to that vision by enabling code execution across 42+ programming languages through a unified interface, accessible to all.
|
|
// Code is seeds to sprout on any abandoned technology.
|
|
|
|
/*
|
|
Hello World example - standalone version
|
|
|
|
This example demonstrates the async execution pattern with Go.
|
|
Shows goroutines and channels for non-blocking operations.
|
|
|
|
To run:
|
|
go run hello_world.go
|
|
|
|
Expected output:
|
|
Executing code asynchronously...
|
|
Waiting for result on channel...
|
|
Result status: completed
|
|
Output: Hello from async unsandbox!
|
|
*/
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
// Simulated result type
|
|
type Result struct {
|
|
Status string
|
|
Stdout string
|
|
Stderr string
|
|
}
|
|
|
|
// Simulated async execution using goroutine and channel
|
|
func executeAsync(language, code string) <-chan Result {
|
|
resultChan := make(chan Result, 1)
|
|
|
|
go func() {
|
|
// In real SDK, this would call the API
|
|
// Here we simulate the expected response
|
|
resultChan <- Result{
|
|
Status: "completed",
|
|
Stdout: "Hello from async unsandbox!\n",
|
|
Stderr: "",
|
|
}
|
|
}()
|
|
|
|
return resultChan
|
|
}
|
|
|
|
func main() {
|
|
code := `print("Hello from async unsandbox!")`
|
|
|
|
fmt.Println("Executing code asynchronously...")
|
|
resultChan := executeAsync("python", code)
|
|
|
|
fmt.Println("Waiting for result on channel...")
|
|
result := <-resultChan
|
|
|
|
if result.Status == "completed" {
|
|
fmt.Printf("Result status: %s\n", result.Status)
|
|
fmt.Printf("Output: %s", result.Stdout)
|
|
} else {
|
|
fmt.Printf("Execution failed with status: %s\n", result.Status)
|
|
}
|
|
}
|