--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
So what values do you propose for it? Are there 6 combinations? How do you combine the two axes?
On Mar 10, 2017 9:26 AM, <vladimir....@imgtec.com> wrote:
Hi all,--
I would like to add an environment variable, GOMIPS, for mips-specific options.
It would be used for the choice between hard-float and soft-float, and the instruction set: mips32(r1), mips32r2 and mips32r6. (mips32r6 isn't backward compatible with r1/r2.)
Any thoughts?
Thanks,
Vladimir
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
It has been two months without new comments. Do we have agreement that new environment variable, GOMIPS, can be added?
--
The last I saw, Keith was asking whether this deserves a new GOARCH. It definitely doesn't sound like any plan was reached.
On Mon, May 8, 2017 at 4:40 AM, Petar Jovanovic <pet...@mips.com> wrote:
It has been two months without new comments. Do we have agreement that new environment variable, GOMIPS, can be added?
--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
So, to summarize, we would like to support a few variants of mips:
-mips32(r1);
-mips32r2;
-mips32r6;
mips32r2 is backward compatible with r1, without the option we just couldn't take advantage of the new instructions (the aforementioned ext, ins, seb, seh, and rotr, wsbh). Or we could emit them unconditionally, but that would mean we give up supporting r1.
r6 isn't backward compatible so it might be a new GOARCH, though majority of the code is the same as for GOARCH=mips, in compiler, assembler and runtime.
Btw, mips32r2 patch is quite ready, it could be submitted soon after we get past GOMIPS.
Also, the same GOMIPS variable might be used for the mips64 variants:
-mips3 (current mips64);
-mips64r2;
-mips64r6;
Besides, we would like to have a choice between hard-float and soft-float, although that might be a separate, non-arch-specific, variable.
On Monday, May 8, 2017 at 9:27:24 PM UTC+2, Brad Fitzpatrick wrote:The last I saw, Keith was asking whether this deserves a new GOARCH. It definitely doesn't sound like any plan was reached.On Mon, May 8, 2017 at 4:40 AM, Petar Jovanovic <pet...@mips.com> wrote:It has been two months without new comments. Do we have agreement that new environment variable, GOMIPS, can be added?--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
On Tue, May 9, 2017 at 1:06 PM, <vladimir....@imgtec.com> wrote:So, to summarize, we would like to support a few variants of mips:
-mips32(r1);
-mips32r2;
-mips32r6;
mips32r2 is backward compatible with r1, without the option we just couldn't take advantage of the new instructions (the aforementioned ext, ins, seb, seh, and rotr, wsbh). Or we could emit them unconditionally, but that would mean we give up supporting r1.
r6 isn't backward compatible so it might be a new GOARCH, though majority of the code is the same as for GOARCH=mips, in compiler, assembler and runtime.
Btw, mips32r2 patch is quite ready, it could be submitted soon after we get past GOMIPS.Sounds reasonable. GOMIPS values of 1 (default), 2, 6. It's new that the subarch values are mutually incompatible (unlike arm, where they are only unidirectionally incompatible), but that's life I guess.What are the incompatibilities with mips32r6, exactly?
Also, the same GOMIPS variable might be used for the mips64 variants:
-mips3 (current mips64);
-mips64r2;
-mips64r6;
Besides, we would like to have a choice between hard-float and soft-float, although that might be a separate, non-arch-specific, variable.ARM selects soft float for GOARM=5 but not for later versions. Is that not the case here - you want a full cross product of the above and soft float?
Sounds reasonable. GOMIPS values of 1 (default), 2, 6. It's new that the subarch values are mutually incompatible (unlike arm, where they are only unidirectionally incompatible), but that's life I guess.
On Mon, May 15, 2017 at 10:42 AM, 'Keith Randall' via golang-dev
><golan...@googlegroups.com> wrote:
>> Yes, that sounds good to me. We can bikeshed on the GOFLOAT name. Maybe
>> just GOSOFTFLOAT=1, and make hard the default?
>> Other opinions?
> I'm not fond of a generic name like GOSOFTFLOAT that only applies to MIPS.
>
> In particular I note that we currently have GO386 that takes values
> "387" or "sse". I don't see a problem with GOMIPS that takes one or
> more strings that describe specific attributes.
ARMv5 may also want to use GOSOFTFLOAT, hence both MIPS and ARM would
use it. Speaking of which, I believe MIPS's approach to soft-float code
generation is better and ARMv5 could easily switch to that (with trivial
modification, this could be easily done and benchmarked).
Petar
--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
For the build ID I suppose the processed value would be used, otherwise even "foo, bar" would be different than "foo,bar".
A few small remarks for the concrete set - a user couldn't set just e.g. soft-float and leave the instruction set at default, but would have to specify both choices.
Is it possible to agree that the runtime should detect whether the binary is running on a supported architecture, and abort with a clear error message if it doesn't? I think it's very user-unfriendly to create a binary that can potentially crash after minutes or hours (e.g.: when a specific instruction unsupported instruction is hit). I'd rather make sure that the binary refuses to run altogether. I had this problem with GOARM before.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
--
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
perhaps MIPS32 and MIPS64
On Tue, Apr 24, 2018 at 1:41 PM, 'Austin Clements' via golang-dev <golan...@googlegroups.com> wrote:
I chatted about this with some of the other compiler folks and we'd lean toward introducing GOMIPS64. None of the other GO$GOARCH variables are overloaded at the moment, so it would be inconsistent to do so here. Given the differing defaults, it also seems less surprising to have two different variables. Also, combining them into a single variable makes it harder for users to set up a standard configuration that makes sense both for building mips and mips64 binaries. For example, if a user sets GOMIPS=softfloat in their environment for building mips binaries, but then they later build a mips64 binary, they probably didn't want to force that binary to use softfloat.
On Tue, Apr 24, 2018 at 12:44 PM <milan.k...@rt-rk.com> wrote:
--Hello all,
I would like to bring GOMIPS topic to discussion one more time.Currently the mips64 softloat patches are under review and they are based on mips implementation, so they reuse GOMIPS environment variable. The other soultion would be introduction of GOMIPS64. Current implementation is sufficient for current needs but there is a few problems that should be noted.The purpose of GOMIPS is to enable users to choose between softfloat and hardfloat and to select mips release. Currently, only the softfloat/hardfloat options are available, but we are planning to do support for mips32r2. After that the GOMIPS variable should be comma separated (e.g. GOMIPS=r2,hardfloat) as mentioned.The problem could be setting of the different default options (when GOMIPS is not specified) for each of architectures because default GOMIPS value would be used for both of them (e.g. default for mips32 could be release 1 and for mips64 release 2).Another problem could appear when we make support for mips32r2 because then GOMIPS=r2 will be valid value, but on mips64 we could only ignore it because r2 is not supported.Any thoughts?Thanks,Milan
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
GOMIPS already exists, we probably don't want to rename it.
On Tue, Apr 24, 2018 at 1:44 PM Michael Jones <michae...@gmail.com> wrote:
perhaps MIPS32 and MIPS64
On Tue, Apr 24, 2018 at 1:41 PM, 'Austin Clements' via golang-dev <golan...@googlegroups.com> wrote:
I chatted about this with some of the other compiler folks and we'd lean toward introducing GOMIPS64. None of the other GO$GOARCH variables are overloaded at the moment, so it would be inconsistent to do so here. Given the differing defaults, it also seems less surprising to have two different variables. Also, combining them into a single variable makes it harder for users to set up a standard configuration that makes sense both for building mips and mips64 binaries. For example, if a user sets GOMIPS=softfloat in their environment for building mips binaries, but then they later build a mips64 binary, they probably didn't want to force that binary to use softfloat.
On Tue, Apr 24, 2018 at 12:44 PM <milan.k...@rt-rk.com> wrote:
--Hello all,
I would like to bring GOMIPS topic to discussion one more time.Currently the mips64 softloat patches are under review and they are based on mips implementation, so they reuse GOMIPS environment variable. The other soultion would be introduction of GOMIPS64. Current implementation is sufficient for current needs but there is a few problems that should be noted.The purpose of GOMIPS is to enable users to choose between softfloat and hardfloat and to select mips release. Currently, only the softfloat/hardfloat options are available, but we are planning to do support for mips32r2. After that the GOMIPS variable should be comma separated (e.g. GOMIPS=r2,hardfloat) as mentioned.The problem could be setting of the different default options (when GOMIPS is not specified) for each of architectures because default GOMIPS value would be used for both of them (e.g. default for mips32 could be release 1 and for mips64 release 2).Another problem could appear when we make support for mips32r2 because then GOMIPS=r2 will be valid value, but on mips64 we could only ignore it because r2 is not supported.Any thoughts?Thanks,Milan
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.