permacomputing

Source repository for the main permacomputing wiki site
git clone http://git.permacomputing.net/repos/permacomputing.git # read-only access
Log | Files | Refs

commit 897ae47a0a0d239af839a6fb73fb3db607d46a2c
parent 8a2152624237d1e4abb3ade3eaeae95fef06b6f4
Author: decentral1se <decentral1se@web>
Date:   Sat,  3 Aug 2024 19:53:18 +0200

gccgo/gollvm grouped, more bootstrap info

Diffstat:
MGo.mdwn | 4++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Go.mdwn b/Go.mdwn @@ -2,13 +2,13 @@ Go is a general-purpose programming language created in 2007 designed primarily Go is often favoured for its portability, relative simplicity, ease of concurrent programming, performance and fast build times. -There are several major implementations: [gc](https://go.googlesource.com/go), [gccgo](https://github.com/golang/gofrontend), [gollvm](https://go.googlesource.com/gollvm/), [GopherJS](https://github.com/gopherjs/gopherjs) and [TinyGo](https://tinygo.org). +There are several major implementations: [gc](https://go.googlesource.com/go), [gccgo](https://github.com/golang/gofrontend)/[gollvm](https://go.googlesource.com/gollvm/), [GopherJS](https://github.com/gopherjs/gopherjs) and [TinyGo](https://tinygo.org). Go has a published [language specification](https://go.dev/ref/spec) and a [v1 compatibility promise](https://go.dev/doc/go1compat) which is useful when considering long-term program maintenance. The loading of program dependencies is based on URLs. This implies always-on internet connectivity and typically centralised git repository hosting. A work-around for this is to use [vendoring](https://go.dev/ref/mod#vendoring) which supports downloading and bundling all program dependencies into the source tree. -Go can be [[bootstrapped|bootstrapping]] with Go itself, or [[C]] (via `gccgo`/`gollvm`). However, with the introduction of generics, not all new version of Go can be bootstrapped with C. `gccgo` supports [up to 1.18](https://go.dev/doc/install/gccgo). This may be a useful version to target when considering compatibility with unported systems. +Go can be [[bootstrapped|bootstrapping]] with Go itself, or [[C]] (via `gccgo`/`gollvm`). However, with the introduction of generics, not all new version of Go can be bootstrapped with C. `gccgo` supports [up to 1.18](https://go.dev/doc/install/gccgo). It's also possible [to bootstrap from Go 1.4](https://go.dev/doc/install/source#bootstrapFromSource), the last version written in C. There are [language design decisions](https://tinygo.org/docs/concepts/faq/why-a-new-compiler/) which make Go unsuitable for embedded systems. The [TinyGo](https://tinygo.org) project aims to provide an alternative.