Fw: Re: Mentoring a haskell port
On Apr 3, 2014 4:45 PM, "Wookey" <firstname.lastname@example.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:
Our project ideas page, just to give you some idea of what's going on:
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
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
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
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.
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
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.
Principal hats: �Linaro, Emdebian, Wookware, Balloonboard, ARM
----- End forwarded message -----
Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM