9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] Go (again) on plan9/arm
@ 2013-04-10 19:21 lucio
  2013-04-10 19:53 ` erik quanstrom
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: lucio @ 2013-04-10 19:21 UTC (permalink / raw)
  To: 9fans

Gorka has made good progress with his port of Go, his implementation
on the Raspberry PI tests to completion and only a few tests are
failing.  The outstanding failures are being investigated and will
be corrected.

On the Sheevaplug the problem is a bit more complicated.  Gorka and I
are in perfect (if there is such a state) synchronisation regarding
the Go sources: we are presently working with a copy of the "tip" Hg
release onto which CL 7987044 has been applied.  The description in
the CL goes into details regarding additional adjustments required,
but is silent about the nature of the changes that were needed to the
Plan 9 distribution.

Given that Gorka and I are working on different ARM platforms, it is
not surprising that on my side testing is not as successful.  On the
one hand, there may still be issues in the Go sources, but it is also
very difficult to synchronise the Plan 9 installations and at this
point I don't know what differences there may be in there.

We are expecting a release from Bell Labs of Plan 9 with 21-bit runes
replacing the current 16-bit version.  This is big and difficult and
almost certainly extremely painful, so I doubt it will be completed
quickly (feel free to surprise me, guys!).  I noticed some changes
being applied today, I think Geoff and Co. are approaching the problem
circumspectly and, this is my guess, by making adjustments that can be
kept self-contained.  I do wish them speedy success.

In the meantime, I'd like some 9fans who may own a Sheevaplug,
possibly also other ARM equipment supported by Plan 9 - 9fans with
some interest in Go - to try to install Go on their devices.  The
instructions are detailed in "codereview" CL 7987044, see the Go
documentation on how to contribute for guidelines.  Briefly, the idea
is to clone the "tip" (default) Go development tree and build it
_after_ applying CL 7987044 as a patch.  To the best of my knowledge,
"make.rc" will build the Go distribution and "run.rc --no-rebuild"
will run the tests.

Ideally, I'm looking for a breakthrough with a pristine Plan 9
distribution.  This would require building the ARM (5?) development
toolchain, then the entirety of the runtime for the ARM as well as the
appropriate kernel(s).  I guess the interested parties already know
this, as well as how to boot the ARM equipment with the most recent
available ARM kernel.

There are additional changes that must be applied to the Plan 9
distribution before we approach a successful Go build (the build is
easier, but the Go runtime needs a good few changes).  The idea would
be, in parallel with Bell Labs proceeding on their own path, to
identify the changes that are absolutely critical and document them so
that we can have Go running without putting undo pressure on Bell
Labs.

I'm keen to coordinate these efforts, but Gorka, Richard Miller and
Ron Minnich may also want to participate and/or lead; I am not
volunteering their involvement, I merely mention those I know have the
interest and knwoledge to take part.  There are quite a few others and
they are welcome to introduce themselves if they want to be involved.
I can't offer the same code review infrastructure as Go does, but I
believe that coreboot.org has a similar system - that's outside my
realm and each party may want to specify what rules apply to them.

I hope I'm not treading on any sensitive toes this time.

Lucio.





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

* Re: [9fans] Go (again) on plan9/arm
  2013-04-10 19:21 [9fans] Go (again) on plan9/arm lucio
@ 2013-04-10 19:53 ` erik quanstrom
  2013-04-11  5:48   ` lucio
  2013-04-10 20:20 ` Bakul Shah
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: erik quanstrom @ 2013-04-10 19:53 UTC (permalink / raw)
  To: 9fans

> We are expecting a release from Bell Labs of Plan 9 with 21-bit runes
> replacing the current 16-bit version.  This is big and difficult and
> almost certainly extremely painful, so I doubt it will be completed
> quickly (feel free to surprise me, guys!).  I noticed some changes
> being applied today, I think Geoff and Co. are approaching the problem
> circumspectly and, this is my guess, by making adjustments that can be
> kept self-contained.  I do wish them speedy success.

i transitioned to 20 bit runes a few years ago, and the process was
really pain-free.  Runemax is handy to have instead of just hard-coding
0xffff, and character arrays on the stack are a bit suspicious, since they
often mean UTFmax or UTFmax+1.  but most programs are good-to-go
for large runes.  notible exceptions that i can think of off the top of my head
are in no order:

- wc
- ed, sed, sort
- rc
- grep (for bursting rune ranges)

these are fixed in 9atom, and not a problem unless you actually use them.
there are a few problems in the libraries, also fixed.  mostly in the font code.

there are also tools in 9atom to create new tables for libc in /sys/src/cmd/rune,
including a unicode 6.1 /lib/unicode.

because who doesn't want to grin

; grep grin /lib/unicode
01f600	grinning face
01f601	grinning face with smiling eyes
01f638	grinning cat face with smiling eyes
; ; unicode 01f600 01f601 01f638
😀
😁
😸

- erik



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

* Re: [9fans] Go (again) on plan9/arm
  2013-04-10 19:21 [9fans] Go (again) on plan9/arm lucio
  2013-04-10 19:53 ` erik quanstrom
@ 2013-04-10 20:20 ` Bakul Shah
  2013-04-10 22:56   ` Skip Tavakkolian
  2013-04-11  5:40   ` lucio
  2013-04-10 21:31 ` Skip Tavakkolian
  2013-04-10 23:53 ` Christopher Nielsen
  3 siblings, 2 replies; 8+ messages in thread
From: Bakul Shah @ 2013-04-10 20:20 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

> In the meantime, I'd like some 9fans who may own a Sheevaplug,
> possibly also other ARM equipment supported by Plan 9 - 9fans with
> some interest in Go - to try to install Go on their devices.

Can't go be cross-built? Having multiple cross compilers work
right is one of the best things about plan9's userland.



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

* Re: [9fans] Go (again) on plan9/arm
  2013-04-10 19:21 [9fans] Go (again) on plan9/arm lucio
  2013-04-10 19:53 ` erik quanstrom
  2013-04-10 20:20 ` Bakul Shah
@ 2013-04-10 21:31 ` Skip Tavakkolian
  2013-04-10 23:53 ` Christopher Nielsen
  3 siblings, 0 replies; 8+ messages in thread
From: Skip Tavakkolian @ 2013-04-10 21:31 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

[-- Attachment #1: Type: text/plain, Size: 1215 bytes --]

On Wed, Apr 10, 2013 at 12:21 PM, <lucio@proxima.alt.za> wrote:

>
> In the meantime, I'd like some 9fans who may own a Sheevaplug,
> possibly also other ARM equipment supported by Plan 9 - 9fans with
> some interest in Go - to try to install Go on their devices.  The
> instructions are detailed in "codereview" CL 7987044, see the Go
> documentation on how to contribute for guidelines.  Briefly, the idea
> is to clone the "tip" (default) Go development tree and build it
> _after_ applying CL 7987044 as a patch.  To the best of my knowledge,
> "make.rc" will build the Go distribution and "run.rc --no-rebuild"
> will run the tests.
>
> Ideally, I'm looking for a breakthrough with a pristine Plan 9
> distribution.  This would require building the ARM (5?) development
> toolchain, then the entirety of the runtime for the ARM as well as the
> appropriate kernel(s).  I guess the interested parties already know
> this, as well as how to boot the ARM equipment with the most recent
> available ARM kernel.
>
>
I've been planning to try Plan9/ARM Go, so I'll give it a go. I can it on
Sheeva and GuruPlugs and possibly TrimSlice -- I need to figure out the how
to net boot it.

-Skip

[-- Attachment #2: Type: text/html, Size: 1673 bytes --]

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

* Re: [9fans] Go (again) on plan9/arm
  2013-04-10 20:20 ` Bakul Shah
@ 2013-04-10 22:56   ` Skip Tavakkolian
  2013-04-11  5:40   ` lucio
  1 sibling, 0 replies; 8+ messages in thread
From: Skip Tavakkolian @ 2013-04-10 22:56 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

[-- Attachment #1: Type: text/plain, Size: 876 bytes --]

the process is probably a lot easier with the right cpu type. i think it is
something like:

for each architecture (arm, 386), cpu into a machine with that architecture
and:

for (i in arm 386) {
  GOARCH=$i GOBIN=/$cputype/bin ./all.rc
}

for Sheeva/Guru targets, a GOARM=5 is also needed for arm targets.

still, not as bad as what is required for other OS:
http://dave.cheney.net/2012/09/08/an-introduction-to-cross-compilation-with-go




On Wed, Apr 10, 2013 at 1:20 PM, Bakul Shah <bakul@bitblocks.com> wrote:

> > In the meantime, I'd like some 9fans who may own a Sheevaplug,
> > possibly also other ARM equipment supported by Plan 9 - 9fans with
> > some interest in Go - to try to install Go on their devices.
>
> Can't go be cross-built? Having multiple cross compilers work
> right is one of the best things about plan9's userland.
>
>

[-- Attachment #2: Type: text/html, Size: 1567 bytes --]

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

* Re: [9fans] Go (again) on plan9/arm
  2013-04-10 19:21 [9fans] Go (again) on plan9/arm lucio
                   ` (2 preceding siblings ...)
  2013-04-10 21:31 ` Skip Tavakkolian
@ 2013-04-10 23:53 ` Christopher Nielsen
  3 siblings, 0 replies; 8+ messages in thread
From: Christopher Nielsen @ 2013-04-10 23:53 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

[-- Attachment #1: Type: text/plain, Size: 4115 bytes --]

I have a dreamplug I've been meaning to put Plan 9 on. I should have time
this week to get that done for testing.

--
Christopher Nielsen
"They who can give up essential liberty for temporary safety, deserve
neither liberty nor safety." --Benjamin Franklin
"The tree of liberty must be refreshed from time to time with the blood of
patriots & tyrants." --Thomas Jefferson
"The duty of a patriot is to protect his country from its government."
--Thomas Paine
On Apr 10, 2013 12:25 PM, <lucio@proxima.alt.za> wrote:

> Gorka has made good progress with his port of Go, his implementation
> on the Raspberry PI tests to completion and only a few tests are
> failing.  The outstanding failures are being investigated and will
> be corrected.
>
> On the Sheevaplug the problem is a bit more complicated.  Gorka and I
> are in perfect (if there is such a state) synchronisation regarding
> the Go sources: we are presently working with a copy of the "tip" Hg
> release onto which CL 7987044 has been applied.  The description in
> the CL goes into details regarding additional adjustments required,
> but is silent about the nature of the changes that were needed to the
> Plan 9 distribution.
>
> Given that Gorka and I are working on different ARM platforms, it is
> not surprising that on my side testing is not as successful.  On the
> one hand, there may still be issues in the Go sources, but it is also
> very difficult to synchronise the Plan 9 installations and at this
> point I don't know what differences there may be in there.
>
> We are expecting a release from Bell Labs of Plan 9 with 21-bit runes
> replacing the current 16-bit version.  This is big and difficult and
> almost certainly extremely painful, so I doubt it will be completed
> quickly (feel free to surprise me, guys!).  I noticed some changes
> being applied today, I think Geoff and Co. are approaching the problem
> circumspectly and, this is my guess, by making adjustments that can be
> kept self-contained.  I do wish them speedy success.
>
> In the meantime, I'd like some 9fans who may own a Sheevaplug,
> possibly also other ARM equipment supported by Plan 9 - 9fans with
> some interest in Go - to try to install Go on their devices.  The
> instructions are detailed in "codereview" CL 7987044, see the Go
> documentation on how to contribute for guidelines.  Briefly, the idea
> is to clone the "tip" (default) Go development tree and build it
> _after_ applying CL 7987044 as a patch.  To the best of my knowledge,
> "make.rc" will build the Go distribution and "run.rc --no-rebuild"
> will run the tests.
>
> Ideally, I'm looking for a breakthrough with a pristine Plan 9
> distribution.  This would require building the ARM (5?) development
> toolchain, then the entirety of the runtime for the ARM as well as the
> appropriate kernel(s).  I guess the interested parties already know
> this, as well as how to boot the ARM equipment with the most recent
> available ARM kernel.
>
> There are additional changes that must be applied to the Plan 9
> distribution before we approach a successful Go build (the build is
> easier, but the Go runtime needs a good few changes).  The idea would
> be, in parallel with Bell Labs proceeding on their own path, to
> identify the changes that are absolutely critical and document them so
> that we can have Go running without putting undo pressure on Bell
> Labs.
>
> I'm keen to coordinate these efforts, but Gorka, Richard Miller and
> Ron Minnich may also want to participate and/or lead; I am not
> volunteering their involvement, I merely mention those I know have the
> interest and knwoledge to take part.  There are quite a few others and
> they are welcome to introduce themselves if they want to be involved.
> I can't offer the same code review infrastructure as Go does, but I
> believe that coreboot.org has a similar system - that's outside my
> realm and each party may want to specify what rules apply to them.
>
> I hope I'm not treading on any sensitive toes this time.
>
> Lucio.
>
>
>
>

[-- Attachment #2: Type: text/html, Size: 4702 bytes --]

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

* Re: [9fans] Go (again) on plan9/arm
  2013-04-10 20:20 ` Bakul Shah
  2013-04-10 22:56   ` Skip Tavakkolian
@ 2013-04-11  5:40   ` lucio
  1 sibling, 0 replies; 8+ messages in thread
From: lucio @ 2013-04-11  5:40 UTC (permalink / raw)
  To: 9fans

> Can't go be cross-built? Having multiple cross compilers work
> right is one of the best things about plan9's userland.

Yes, it is possible - to answer your question - although I've found
that having Plan 9 as a special, simpler case is actually a (minor)
liability.

I'm not sure how your question relates to the portion of my message
you quoted, my intention here is two-fold: to locate bugs in the build
procedure and testing on the one hand and to help me identify the
essential changes to the Plan 9 distribution that the Go build needs.

The latter is perhaps interference on my part, but the lack of a code
review facility for Plan 9 means that an outsider has no mechanism to
track a parallel development like the Plan 9 distribution.  It also
means that no one can be sure (with all the different forks of the
Plan 9 base) what is needed for Go to build on a given one.

It's not my job either to attempt to dictate to Plan 9 developers
anywhere what they need to have in their distributions, nor to grant
Bell Labs higher authority than any of the subsequent forks as the
discriminator.  But given that, in my opinion, Go is for Plan 9 is
likely to reach an insurmountable obstacle, this is how I have
approached the problem.  Other suggestions are welcome.

++L




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

* Re: [9fans] Go (again) on plan9/arm
  2013-04-10 19:53 ` erik quanstrom
@ 2013-04-11  5:48   ` lucio
  0 siblings, 0 replies; 8+ messages in thread
From: lucio @ 2013-04-11  5:48 UTC (permalink / raw)
  To: 9fans

> these are fixed in 9atom, and not a problem unless you actually use them.
> there are a few problems in the libraries, also fixed.  mostly in the font code.

I have little doubt that your efforts will not be overloked, although
I am in no ways speaking for Bell Labs.  My assumption is that Bell
Labs are making sure that any regression is detected and addressed
before releasing changes - something for which they have been
criticised in the past and which some of us consider to be their
strongest suit.

I say, let them do their job and let's assist them as far as possible.
Others are welcome to tackle this differently, no one is stopping
them.  I, personally, want to submit a patch set to the Go developers
that is based on the Bell Labs distribution of Plan 9 for the Intel
386 and for some of the ARM processors; there are others that have
enhanced the Go distribution for 9atom and/or for mxn (is that the
right name?).  The Go developers, I presume, will be the final arbiters
on the matter.

++L




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

end of thread, other threads:[~2013-04-11  5:48 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-10 19:21 [9fans] Go (again) on plan9/arm lucio
2013-04-10 19:53 ` erik quanstrom
2013-04-11  5:48   ` lucio
2013-04-10 20:20 ` Bakul Shah
2013-04-10 22:56   ` Skip Tavakkolian
2013-04-11  5:40   ` lucio
2013-04-10 21:31 ` Skip Tavakkolian
2013-04-10 23:53 ` Christopher Nielsen

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).