[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Fw: Re: Mentoring a haskell port



On Apr 3, 2014 4:45 PM, "Wookey" <[2]wookey@wookware.org> wrote:

I'm involved as a Linaro Google summer of code (GSOC) admin as well as
Debian GSOC mentor. (linaro is an arm linux/open source non-profit
engineering organisation if you've never heard of it http://linaro.org/
who have been paying for me to do a lot of good stuff in Debian)

     We have one student proposing to port ghc to arm64, which is a very
     useful and interesting piece of work, which I'd like to see happen,
     but I know absolutely nothing about haskell so would need a
     co-mentor. (but obviously I do know about arm64/aarch64, porting in
     general and debian bootstrapping/crossbuilding machinery).

     Can anyone help me as a co-mentor in the form of 'haskell techincal advisor'

     First, though, the immediate need is to review the proposal and
     talk to the student. I can do that but I need some details on how
     big a job it is and some way to determine if we think the student
     is up to the task. I don't feel that I know enough to ask sensible
     questions, or  judge the answers right now...

     I'm in a hurry on this as decisions on slots need to be made by the
     end of the weekend, so do please get in touch forthwith if you can
     help me with that (no need to commit to mentoring as well, but that
     would be good :-)

     For this project to happen it will need someone with a clue to
     volunteer as mentor (i.e apart from me), for us to judge the
     student as reasonably likely to get somewhere in 3 months (in which
     case we will ask for a slot), and for Linaro to then be allocated a
     slot (this project will be in the 'would be nice', as opposed to
     'core projects' category.

     GSOC mentoring is very satisfying in my experience. You get to
     teach people about free software and the community, as well as the
     technical task at hand, and if you do that well they are likely to
     stay around and do useful stuff for years to come.

     The timeline is here:
     [3]http://www.google-melange.com/gsoc/events/google/gsoc2014

     Our project ideas page, just to give you some idea of what's going on:
     [4]https://wiki.linaro.org/SummerOfCode2014/ProjectIdeas

     ghc porting comes under the "AArch64 porting" heading.

     Below is part of the proposal the guy sent in. You can tell me if
     he has any idea what he's doing or not (he originally applied to do
     something entirely different, but was told it was already done so
     suggested this instead). He appears to have a reasonable idea of
     what to do, and have got stuck in in the short time he had before
     the proposal deadline. I have no idea if this port is a realistic
     task for a student in 3 months. Is it?

     Any comments people have would be of interest, and of course if you are
     able to say you'll help out that would be great. How much time it takes
     varies enormously depending how good the student is. I've had ones that
     are way smarter than me and needed no help at all, and ones who needed
     quite a lot of handholding.


     ----------------
     Name: Kishor Mohite
     Email: [6]kishormohite888@gmail.com

     4) Implementation

     i) It is quite exciting and challenging to port the software used
     everyday by developers to a completely new architecture. In the initial
     stages I will pick the Glasgow Haskell Compiler for porting as it is not
     ported yet to AArch64.

     ii) I am currently working to get unregistered build of ghc working on
     Aarch64. First steps for which are compiling intermediate C (.hc) files
     using vanilla C. Unregistered build costs about a factor of two in
     performance but it is just a step to get full registered port. Full
     registered port gets bootstrapped with unregistered build on a new
     architecture.

     iii) I have been able to setup a cross compiler toolchain on Ubuntu
     (x86_64) which will be the host machine for the porting purpose. Also I
     have been able to get foundation model for ARMv8 working with this
     kernel image and this rootfs disk image, though I am not able to ssh to
     the foundation model from host machine. I have cross compiled some C
     programs on host machine and able to get them working on a foundation
     model.

     iv) I have made changes in ghc ./configure script to recognize
     aarch64-unknown-linux as a target platform. Script is running with
     x86_64 as host and build architecture and aarch64 as target
     architecture. configure stops with error "configure: error: building
     ghc-pwd failed", now looking into that issue.

     5) Timeline

     i) Last week of April and First week of May:

     My end term examinations will end in third week of April after which I
     will be completely available for the project. I will give two weeks to
     study the code which is ported already by Linaro Engineers studying
     carefully the coding style and understanding the actual code with the
     help of mentor. At the same time I will read the documentation written
     by Linaro Engineers and get to know about detailed working of 64 bit
     execution state of ARMv8 as I have already worked on MIPS it will not
     take much time.

     ii) Second week of May to First week of June:

     From the second week I will start working on ghc, by the time I will
     have a complete development environment setup. First working to get
     unregistered build working on a new architecture which might take some
     time because of minor porting issues that may arise.

     iii) Second week of June and Third week of June:

     Unregistered build of ghc will be ready for AArch64 by the end of third
     week of June and will be completely tested for any issues in this
     period.

     iv) Last week of June:

     Project will be ready for submitting in mid term evaluations.

     v) First week of July to Second week of August:

     In the second phase I will work on making completely registered build
     for AArch64 using unregistered build for bootstrapping purpose and
     resolving any issues which will arise while building in this period. And
     if it doesn't take that long to build registerised ghc I will pick one
     more project, most probably gnu-smalltalk for porting to aarch64.

     vi) Third week of August:

     Required code samples will be provided to Google.

     -------------------------

     Wookey
     --
     Principal hats: �Linaro, Emdebian, Wookware, Balloonboard, ARM
     [7]http://wookware.org/

References

   Visible links
   1. http://rrt.sc3d.org/
   2. mailto:wookey@wookware.org
   3. http://www.google-melange.com/gsoc/events/google/gsoc2014
   4. https://wiki.linaro.org/SummerOfCode2014/ProjectIdeas
   5. https://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2014/kishorm23/5629499534213120?verified=True
   6. mailto:kishormohite888@gmail.com
   7. http://wookware.org/

----- End forwarded message -----
Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/


Reply to: