Wednesday, July 22, 2009

GSoC2009 Midterm Evaluation

Last week is GSoC midterm evaluation week. It's over now and I got the stipend also.With both stipend and experience, this summer is really wonderful to me.

In my project, I need to port the Webkit to ES to improve canvas support. But Webkit is one of the biggest project in the world, it not only have many feature and big team work on it, and also need some library to support it.


In ESOS(es operating system), we want to build a pure component operating system, and we want the os as small as possible and don't use platform-specific library, like gtk/glibc. So far I update cairo (with pixman-1), and port libjpeg, ICU, and libxml2 for dependency needs of Webkit. That's what I did before midterm evaluation.

Before this project, I only hear about SVN, and have a little understanding of Makefile, but not Autotool. I know little about opensource environment, and have no experience in it. But now I practice, learn and enjoy the coding.

In fact in this project, it did change my knowing about programming and coding. Because in Taiwan, we students have only few experience in big project or big program with other people. We often write a program on our own, and most important, we don't keep make the program bigger and keep it update. This will make we student always focus on the skill in one file or small function. And so, we don't have experience like Software Engineering, which I could got from opensource project.


At the early stage of project, I add a little function to get familiar with cairo API. And then, I try to update cairo library from 1.4.10 to 1.8.6, which I could learn from previous port configuration, and get the basic understanding of Autotool.

And then I try to port pixman-1, this is the small library of cairo team, and it's prerequisite of cairo 1.8.6 . It's indeed a small library from which I could got a good starting. And then I port libxml2 and libjpeg, both are not difficult. But I got some stub at ICU lib.

It needs to have a host build(i.e. in linux) first, and then create a cross-compiling to port into ES. And may because of the cross-compile feature of ICU is newly add in recently version, I need to do some patch and configuration to correctly build it. And happly, it successfully create a static library file. That's what we need.


So far is what I done in my project. This work give me many experience in Shell script and GNU Autotool. And the code in ES really shows me a lot information I should improve, also the Javascript(ECMA script) which ES use give me some concept of dynamic language, I had very few experience of that kind of language.


Above is my recently update. Hope I will keep my pace, and have a great result. And I also need to improve my poor coding skill. Cheers!

- Kala Kuo

No comments:

Post a Comment