9front - general discussion about 9front
 help / color / mirror / Atom feed
* [9front] Go on ARM64
@ 2022-12-28 17:29 Philip Silva
  2022-12-28 17:51 ` Jacob Moody
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Philip Silva @ 2022-12-28 17:29 UTC (permalink / raw)
  To: 9front

Hi!

Since I have now a MNT Reform and there was still no Go I tried my luck with porting: https://github.com/psilva261/go-arm64.plan9 

I've tested compiling from linux/amd64 (Go 1.19.4) and 9front/amd64 (Go 1.18.3), that both works. But since there's no bootstrap.rc, it can be compiled like this:

echo go1.20 > VERSION # bootstrap.bash produces something like go1.20-53289fad60
cd src
GOROOT=/tmp/go-arm64.plan9-arm64.plan9 GOOS=plan9 GOARCH=arm64 make.rc
cd .. ; mv bin/plan9_arm64/* bin/

Greetings, Philip


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [9front] Go on ARM64
  2022-12-28 17:29 [9front] Go on ARM64 Philip Silva
@ 2022-12-28 17:51 ` Jacob Moody
  2022-12-28 17:58 ` ori
  2022-12-31  2:49 ` william
  2 siblings, 0 replies; 11+ messages in thread
From: Jacob Moody @ 2022-12-28 17:51 UTC (permalink / raw)
  To: 9front

On 12/28/22 10:29, Philip Silva wrote:
> Hi!
> 
> Since I have now a MNT Reform and there was still no Go I tried my luck with porting: https://github.com/psilva261/go-arm64.plan9 
> 
> I've tested compiling from linux/amd64 (Go 1.19.4) and 9front/amd64 (Go 1.18.3), that both works. But since there's no bootstrap.rc, it can be compiled like this:
> 
> echo go1.20 > VERSION # bootstrap.bash produces something like go1.20-53289fad60
> cd src
> GOROOT=/tmp/go-arm64.plan9-arm64.plan9 GOOS=plan9 GOARCH=arm64 make.rc
> cd .. ; mv bin/plan9_arm64/* bin/
> 
> Greetings, Philip
> 

Cool!

I recall there being a bounty for this:

https://inbox.vuxu.org/9front/CAJeB+LTSZ4CdFgv=p94AM0tYQPi_H_CxMYmYA9GXLtbKbcr=Jw@mail.gmail.com/

Granted it's a bit dusty, but perhaps you can brush it off and cash it in. If you can't, we can probably
strike it from the FQA bounty list.

Thanks,
moody

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [9front] Go on ARM64
  2022-12-28 17:29 [9front] Go on ARM64 Philip Silva
  2022-12-28 17:51 ` Jacob Moody
@ 2022-12-28 17:58 ` ori
  2022-12-28 21:43   ` Philip Silva
  2022-12-31  2:49 ` william
  2 siblings, 1 reply; 11+ messages in thread
From: ori @ 2022-12-28 17:58 UTC (permalink / raw)
  To: 9front

Quoth Philip Silva <philip.silva@protonmail.com>:
> Hi!
> 
> Since I have now a MNT Reform and there was still no Go I tried my luck with porting: https://github.com/psilva261/go-arm64.plan9 
> 
> I've tested compiling from linux/amd64 (Go 1.19.4) and 9front/amd64 (Go 1.18.3), that both works. But since there's no bootstrap.rc, it can be compiled like this:
> 
> echo go1.20 > VERSION # bootstrap.bash produces something like go1.20-53289fad60
> cd src
> GOROOT=/tmp/go-arm64.plan9-arm64.plan9 GOOS=plan9 GOARCH=arm64 make.rc
> cd .. ; mv bin/plan9_arm64/* bin/
> 
> Greetings, Philip
> 

next step -- let's get it upstream.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [9front] Go on ARM64
  2022-12-28 17:58 ` ori
@ 2022-12-28 21:43   ` Philip Silva
  2022-12-30  4:59     ` Fazlul Shahriar
  0 siblings, 1 reply; 11+ messages in thread
From: Philip Silva @ 2022-12-28 21:43 UTC (permalink / raw)
  To: 9front

> Granted it's a bit dusty, but perhaps you can brush it off and cash it in. If you can't, we can probably
strike it from the FQA bounty list.

That would be something!

> next step -- let's get it upstream.

Definitely, there are (at least) 2 lines of debugging left-over and I need to check the tests, but I can create a PR then in the next days


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [9front] Go on ARM64
  2022-12-28 21:43   ` Philip Silva
@ 2022-12-30  4:59     ` Fazlul Shahriar
  2022-12-31  0:44       ` Philip Silva
  0 siblings, 1 reply; 11+ messages in thread
From: Fazlul Shahriar @ 2022-12-30  4:59 UTC (permalink / raw)
  To: 9front

> > next step -- let's get it upstream.
>
> Definitely, there are (at least) 2 lines of debugging left-over and I need to check the tests, but I can create a PR then in the next days

It's a bit more complicated than sending a PR. You need to create a
proposal and set up a builder. See:
https://github.com/golang/go/wiki/PortingPolicy

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [9front] Go on ARM64
  2022-12-30  4:59     ` Fazlul Shahriar
@ 2022-12-31  0:44       ` Philip Silva
  2022-12-31  1:53         ` Fazlul Shahriar
  2022-12-31  2:42         ` ori
  0 siblings, 2 replies; 11+ messages in thread
From: Philip Silva @ 2022-12-31  0:44 UTC (permalink / raw)
  To: 9front

Wow this looks complicated, also because there's no 9legacy/arm64 I think. I wonder if Sourcehut CI is an option. Also 2 maintainers are needed. Would anyone be interested?

Actually in the code I also found 2 tricky issues, one with panic/recover and one with reflection in templates. At least there are test cases, this might be fixable in a day or take much longer. Although it seems other ports were added incrementally actually


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [9front] Go on ARM64
  2022-12-31  0:44       ` Philip Silva
@ 2022-12-31  1:53         ` Fazlul Shahriar
  2022-12-31  2:42         ` ori
  1 sibling, 0 replies; 11+ messages in thread
From: Fazlul Shahriar @ 2022-12-31  1:53 UTC (permalink / raw)
  To: 9front

> Wow this looks complicated, also because there's no 9legacy/arm64 I think. I wonder if Sourcehut CI is an option. Also 2 maintainers are needed. Would anyone be interested?

I think it's 2 maintainers for each GOOS and GOARCH separately, not
for each combination. We already have 2 maintainers for plan9.

For the builder, I think you need a dedicated hardware or VM.
Instructions here: https://github.com/golang/go/wiki/DashboardBuilders
The plan9/arm builder seems to be running on a few dedicated Raspberry
Pis: https://github.com/golang/go/issues/49338#issuecomment-960685367

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [9front] Go on ARM64
  2022-12-31  0:44       ` Philip Silva
  2022-12-31  1:53         ` Fazlul Shahriar
@ 2022-12-31  2:42         ` ori
  2023-01-01 18:06           ` Philip Silva
  1 sibling, 1 reply; 11+ messages in thread
From: ori @ 2022-12-31  2:42 UTC (permalink / raw)
  To: 9front

Quoth Philip Silva <philip.silva@protonmail.com>:
> Wow this looks complicated, also because there's no 9legacy/arm64 I think. I wonder if Sourcehut CI is an option. Also 2 maintainers are needed. Would anyone be interested?
> 
> Actually in the code I also found 2 tricky issues, one with panic/recover and one with reflection in templates. At least there are test cases, this might be fixable in a day or take much longer. Although it seems other ports were added incrementally actually
> 

I'm happy enough to figure out hosting if needed.


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [9front] Go on ARM64
  2022-12-28 17:29 [9front] Go on ARM64 Philip Silva
  2022-12-28 17:51 ` Jacob Moody
  2022-12-28 17:58 ` ori
@ 2022-12-31  2:49 ` william
  2022-12-31  4:04   ` Aaron Bieber
  2 siblings, 1 reply; 11+ messages in thread
From: william @ 2022-12-31  2:49 UTC (permalink / raw)
  To: 9front

I couldn't get it to compile. I cloned the repo in /usr/glenda/code and changed the path


term% GOROOT=/usr/glenda/code/go-arm64.plan9 GOOS=plan9 GOARCH=arm64 make.rc
go: not found
go: not found
ERROR: Cannot find /usr/glenda/go1.4/bin/go.
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.17.13.

Not sure why its looking for go if i'm compiling for first time

does this matter below?

echo go1.20 > VERSION. I have it in both in the following directories.

/usr/glenda/code/go-arm64.plan9/VERSION
/usr/glenda/code/go-arm64.plan9/src/VERSION



Quoth Philip Silva <philip.silva@protonmail.com>:
> Hi!
> 
> Since I have now a MNT Reform and there was still no Go I tried my luck with porting: https://github.com/psilva261/go-arm64.plan9 
> 
> I've tested compiling from linux/amd64 (Go 1.19.4) and 9front/amd64 (Go 1.18.3), that both works. But since there's no bootstrap.rc, it can be compiled like this:
> 
> echo go1.20 > VERSION # bootstrap.bash produces something like go1.20-53289fad60
> cd src
> GOROOT=/tmp/go-arm64.plan9-arm64.plan9 GOOS=plan9 GOARCH=arm64 make.rc
> cd .. ; mv bin/plan9_arm64/* bin/
> 
> Greetings, Philip
> 
> 


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [9front] Go on ARM64
  2022-12-31  2:49 ` william
@ 2022-12-31  4:04   ` Aaron Bieber
  0 siblings, 0 replies; 11+ messages in thread
From: Aaron Bieber @ 2022-12-31  4:04 UTC (permalink / raw)
  To: 9front



On Fri, Dec 30, 2022, at 7:49 PM, william@thinktankworkspaces.com wrote:
> I couldn't get it to compile. I cloned the repo in /usr/glenda/code and 
> changed the path
>
>
> term% GOROOT=/usr/glenda/code/go-arm64.plan9 GOOS=plan9 GOARCH=arm64 make.rc
> go: not found
> go: not found
> ERROR: Cannot find /usr/glenda/go1.4/bin/go.
> Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.17.13.
>
> Not sure why its looking for go if i'm compiling for first time
>
> does this matter below?

You need to bootstrap it with an existing go compiler. This is the case on any OS since go is self hosted.

>
> echo go1.20 > VERSION. I have it in both in the following directories.
>
> /usr/glenda/code/go-arm64.plan9/VERSION
> /usr/glenda/code/go-arm64.plan9/src/VERSION
>
>
>
> Quoth Philip Silva <philip.silva@protonmail.com>:
>> Hi!
>> 
>> Since I have now a MNT Reform and there was still no Go I tried my luck with porting: https://github.com/psilva261/go-arm64.plan9 
>> 
>> I've tested compiling from linux/amd64 (Go 1.19.4) and 9front/amd64 (Go 1.18.3), that both works. But since there's no bootstrap.rc, it can be compiled like this:
>> 
>> echo go1.20 > VERSION # bootstrap.bash produces something like go1.20-53289fad60
>> cd src
>> GOROOT=/tmp/go-arm64.plan9-arm64.plan9 GOOS=plan9 GOARCH=arm64 make.rc
>> cd .. ; mv bin/plan9_arm64/* bin/
>> 
>> Greetings, Philip
>> 
>>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [9front] Go on ARM64
  2022-12-31  2:42         ` ori
@ 2023-01-01 18:06           ` Philip Silva
  0 siblings, 0 replies; 11+ messages in thread
From: Philip Silva @ 2023-01-01 18:06 UTC (permalink / raw)
  To: 9front

Awesome! I've also created a proposal on the issue tracker https://github.com/golang/go/issues/57540

------- Original Message -------
On Saturday, December 31st, 2022 at 03:42, ori@eigenstate.org <ori@eigenstate.org> wrote:

> I'm happy enough to figure out hosting if needed.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-01-01 18:08 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-28 17:29 [9front] Go on ARM64 Philip Silva
2022-12-28 17:51 ` Jacob Moody
2022-12-28 17:58 ` ori
2022-12-28 21:43   ` Philip Silva
2022-12-30  4:59     ` Fazlul Shahriar
2022-12-31  0:44       ` Philip Silva
2022-12-31  1:53         ` Fazlul Shahriar
2022-12-31  2:42         ` ori
2023-01-01 18:06           ` Philip Silva
2022-12-31  2:49 ` william
2022-12-31  4:04   ` Aaron Bieber

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).