Hello Thomas,

First of all, I would like to thank you for your feedback. It means a lot
to me.

> Replacing the (legacy) threadvars
> mechanism with TLS shall not really be your project; yours is to port Go
> (or more specifically, its runtime library) to GNU Hurd.

I do understand this, but if you believe this would not take me out of my
schedule,
I would like to attempt this, as I am given the impression that this is
important for the HURD.
If you believe it would be too hard to do this along with the main
assignment, I could scrap it
if there would be a viable work around - or if you believe it's beyond my
skills.

> As an obvious preparatory task (which in a way is also present in your
> Estimated Project Timeline, Before May 15): have you been able to
> complete a build of GCC for/on GNU/Hurd, and (roughly) reproduced my
> current test results, as per my notes on

Yes, I am on it. Not yet finished, but I am very close to have a working
environment on top of Debian GNU/HURD.

> I think I have found a way so that we can hack around that problem on the
> Hurd/glibc side (that is, implement the setcontext et al. function in the
> threadvars environment) until we're able to address the issue properly
> (replace threadvars with TLS proper).  Not yet implemented and tested,
> but I'm on it; slowly, time is limited.

Again, since my first assignment is to port the go frontend to the HURD, I
could use that work around.
However, keep in my mind, that my objective is not do simply "do
something", I want to do useful work,
so unless I am seriously time constrained, I would like to help advance the
HURD
by doing some infrastructure work on it.

Last but not least, I would like to know if you have some other proposition
for me. Mr Ian could have a suggestion for the go part perhaps?

Thank you for your feedback - it means a lot to me.
Fotis Koutoulakis.


On Wed, May 15, 2013 at 5:04 PM, Thomas Schwinge <tho...@codesourcery.com>wrote:

> Hi!
>
> On Fri, 3 May 2013 21:23:49 +0300, Fotis Koutoulakis <
> fotis.koutoula...@gmail.com> wrote:
> > A link to it can be found here:
> >
> https://google-melange.appspot.com/gsoc/proposal/review/google/gsoc2013/nlightnfotis/1
> > (I
> > hope it is publicly visible, it seems to me it is).
> >
> > Of course, I am more than open to comments/criticism as well as
> > clarifications.
>
> Your Estimated Project Timeline is not yet very specific (though I'm well
> aware that this is difficult to do).  Replacing the (legacy) threadvars
> mechanism with TLS shall not really be your project; yours is to port Go
> (or more specifically, its runtime library) to GNU Hurd.
>
> As an obvious preparatory task (which in a way is also present in your
> Estimated Project Timeline, Before May 15): have you been able to
> complete a build of GCC for/on GNU/Hurd, and (roughly) reproduced my
> current test results, as per my notes on
> <http://darnassus.sceen.net/~hurd-web/open_issues/gcc/>?  (Not for Go
> yet, of course, but so that you generally have set up a suitable
> development environment for GCC work.)  You can clone the hurd/web.git
> repository from Savannah, and check out the toolchain/logs/master branch
> (which I have as a Git submodule on toolchain/logs), and compare the
> *.sum files in gcc/coulomb.SCHWINGE/test/ with those you get.
>
> Ian, anything else we would like Fotis to do/provide at this time?
>
>
> As for the roadblock:
>
> > On Tue, Apr 30, 2013 at 4:58 PM, Ian Lance Taylor <i...@google.com>
> wrote:
> >
> > > On Tue, Apr 30, 2013 at 6:53 AM, Thomas Schwinge
> > > <tho...@codesourcery.com> wrote:
> > > >
> > > > On <http://darnassus.sceen.net/~hurd-web/open_issues/gccgo/> I have
> just
> > > > updated/posted a getcontext/makecontext/setcontext/swapcontext usage
> > > > analysis.  This might constitute a "road block": the Hurd currently
> does
> > > > not allow for changing the stack of a process/thread.  Implemented a
> > > > while before TLS/__thread variables came along, we have a legacy
> > > > threadvar mechanism implemented in glibc, which places thread-local
> > > > variables (errno, for example) at the bottom of a thread's stack.
>  Then,
> > > > when switching the stack of a thread, glibc can't locate these
> anymore,
> > > > and "bad things" happen.  This threadvar mechanism is scheduled to go
> > > > away (we do implement TLS by now), but when working on that I hit
> "some
> > > > issues" and have not yet found the time to continue.
> > > > <
> http://darnassus.sceen.net/~hurd-web/open_issues/glibc/t/tls-threadvar/>
> > > > and
> > > > <
> http://news.gmane.org/find-root.php?message_id=%3c878vdyqht3%2Efsf%40kepler%2Eschwinge%2Ehomeip%2Enet%3e
> >
> > > > have the details.
> > > >
> > > > Now, it seems the GCC Go port is implemented in a way that makes
> > > > extensive use of switching stacks.  So until this threadvar issue is
> > > > resolved, there is probably no way to really proceed with the GCC Go
> port
> > > > for GNU Hurd -- unless maybe this stack switching could be hacked
> around
> > > > (Ian?), say, by limiting oneself to not using Goroutines and similar
> > > > "specials", and having a custom/minimal Go runtime startup.
> > >
> > > Go does require switching stacks.  A port of Go that doesn't support
> > > goroutines would be useless--nothing in the standard library would
> > > work.
>
> I think I have found a way so that we can hack around that problem on the
> Hurd/glibc side (that is, implement the setcontext et al. function in the
> threadvars environment) until we're able to address the issue properly
> (replace threadvars with TLS proper).  Not yet implemented and tested,
> but I'm on it; slowly, time is limited.
>
>
> Grüße,
>  Thomas
>



-- 
*Fotis 'NlightNFotis' Koutoulakis*
*
*
*- "Non semper aestas erit; venit hiems."*

Reply via email to