Changes

Jump to navigation Jump to search
693 bytes removed ,  03:01, 30 November 2013
no edit summary
* '''Why do you want to participate in the Google Summer of Code? What do you hope to gain by doing so?'''
:I am a technical enthusiast and has used serveral been using several opern source project in my research. So I want to contribute to open source organization via participating GSoC. In addition cooperating to the opportunity that cooperate with open source group, I hope to gain experience with Octave IR, JITC internal and JIT optimizations (trace/method-based compilation … etc).
:* '''Please also describe your previous experience with the GSoC.'''
::I have applied GSoC last year so I am familiar with how this program goes.
* '''Why are you choosing Octave?'''
:I have noticed that Jordi Gutiérrez Hermoso post an idea related to JIT compiling on GSoC discuss group. Since I have some experience using LLVM JIT to improve runtime system performance. I want to improve Octave JITC and further make it my research thesis.
== C: Contact ==
* '''Please describe your experience with other programming languages.'''
:I have used Verilog to implement a lot of experience in Java, a large part of my contribution MIPS CPU with multiple-stage pipeline and cache before. Hardware description language is not difficult to Scilab was made in the language, in additionme. Besides, I also developed have some applications for small experience in Java and medium sizeC#. Because my primary working environment is Linux, I also have extensive experience in web development, especially with PHP, HTML, CSS use shell script and SQL. I did a lot of modifications on the shareware platform Vbulletin (PHP + MySQL)Perl to simplify daily routine. //
* '''Please describe your experience with being in a development team.Do you have experience working with open source or free projects?''':I developed some jobs to automation robots, applying some genetic algorithms. These works have been developed in a team of 6 developers in laboratory automation at my university, we met in the lab three times a week and we communicated by IRC, managing code experience working with GIT. Most parts of the development in Scilab also required group work, for this I used mailing lists QEMU and IRChave submitted several patches. //
* '''Please describe the biggest project you have written code for and what you learned by doing so. Also describe your role in that project over time.'''
:My biggest project is “VNC (VirtualNetwork Computing) on EFI (Extensible Firmware Interface)”. We can remote control the other computer without entering OS. As far as I know, there is no one do the project I did. So I have met many problems and there is was no relevant information on web. I use needed to rely on my background knowledge about BIOS and System Software to solve and solved these issues by myself. I learned not only EFI skill but also the ability to find the solution of problems during the project.  * '''Please state the commits and patches you already contributed to Octave.''':Octave JIT doesn’t work with LLVM 3.2 because LLVM API incoherence. I have submited a patch to resolve this. https://savannah.gnu.org/bugs/index.php?38564
== F: Feeling fine ==
* '''Please describe (in short) your experience with the following tools:'''
:* '''IRC and mailing lists'''
::I have used IRC and mailing lists for several years. In fact, I have talked with Octave mentor about my project on IRCalready.
:* '''Mercurial or other source code management systems'''
::I usually use Git and Subversion. But I think it may not too dificult to migrate to Mercurial. And I have use used hg to format my patch submitted to Octave.
:* '''Mediawiki or other wiki software'''
::None before. But I use it during when I post this proposal :)
:* '''make, gcc, gdb or other development tools'''
::I use make to automate build process, gcc to compile and gdb to debug almost erery day. Besides this these development tooltools. I also used use Cmake for cross platform build system, clang/LLVM to compile. Learning new development tools is not hard to me.
* '''What will make you actively stay in our community after this GSoC is over?'''
:In fact, a summer is too short to implement all my idea. I would need to continue contributing to complete all my goal. On the other hand, The project I proposed has highly relationship with my professional field of study (LLVM, compiler, interpreter). So I am willing to join Octave JIT project constantly.
== O: Only out of interest ==
* '''Did you ever hear about Octave before?'''
:Yes I did.
** '''If so, when and where? How far have you been involved already?'''
::Yes, I have known noticed Octave when I used proprietary Matlab in my school last year. ** '''What was the first question concerning Octave four years ago, at my university, in Brazilyou could not find an answer to rather quickly?'''::The build process. I did not know that I need run ./bootstrap first until I read etc/HACKING. Because I usually run autogen and configure directly.
== P: Prerequisites ==
* '''Please state the operating system you work with.'''
** '''If you have access to more than one, please state them and the conditions under which you are granted this access.'''
::Usually Linux. But sometimes I have a notebook work with Ubuntu Mac OSX and Windows 7. Eventually can if I use a MacBook of need to test a lab at my university, to perform some tests (if necessary)program on variant platforms.
* '''Please estimate an average time per day you will be able to ''(if separated)'' access'''
** '''an internet connection'''
::Disconnect when I sleep.
** '''a computer'''
::All the time.
** '''a computer with your progressing work on'''
::I am all the time with my laptop, I just disconnect the internet when I sleep...::I understand the importance of dedication to the project, so I can guarantee that I will be absolutely free for GSoC and that I can accomplish much more More than 40 hours per week.
* '''Please describe the degree up to which you can install new software on computers you have access to.'''
:I can have my own macbook. So I could install any software on the computers mentioned!all softwares I need.
== S: Self-assessment ==
* '''Please describe how useful criticism looks from your point of view as committing student.'''
:Criticisms are essential in group work, because people are able to share knowledge, Concrete and can bring improvements to the development processclear. Sometimes with example.
* '''How autonomous are you when developing?'''
:Give me a project direction. I always do a search on the internet or in books in the great library at my universitycould find what I need from Google, Stack Overflow, IRC and mailing list. If I'm information is not successfulavailable on web or book, I seek would rely on my background knowledge to talk to someone in the community, by email or IRCanalyze problem and further solve it.
:* '''Do you like to discuss changes intensively and not start coding until you know what you want to do?'''
:* '''Do you like to code a proof of concept to 'see how it turns out', modifying that and taking the risk of having work thrown away if it doesn't match what the project or original proponent had in mind?'''
 ::I think it largely depends on the purpose of development, some jobs require more time for research like to dicuss direction first and planningreinterpret in my words. Then ask others whether my understanding is correct. However, And I believe that in general would start writing small program to prove my concept. If the best way is to use a few days to talk intensely about work doesn’t match the tasks and perform some working sketches, after thatgoal, I think would thrown it is interesting away early rather then coding for thousands of code and hard to encode some examples and keep adjusting them over time, I think it is more attractive for work as the GSOC!debug.
== Y: Your task ==
* '''Did you select a task from our list of proposals and ideas?'''
:Yes I did.
:* '''If yes, what task did you choose? Please describe what part of it you especially want to focus on if you can already provide this information.'''
http://wiki.octave.org/Summer_of_Code_Project_Ideas#Improve_JIT_compiling:According :I selected “Improveing JIT compiling” project, focusing on “Enhance JITC functionality” and “Migrate from LLVM JIT to what LLVM MCJIT”. Current JITC lacks some feature: Functions and exponents (e.g. 2^z) cannot compile with the JITC. I had discussed in previous questionswant to concentrate on expanding JITC to handle this non-trivial but fundamental case. ::Second, I am would begin to migrate from JIT to MCJIT. JITC use JIT now, however LLVM community has no longer maintained JIT and move to MCJIT. I think we could move to MCJIT as well (but still support JIT). This is really very interested in developing new GUI tools for working with graphics and assist in finalizing important if we want to get the GUI Octavebenefit from LLVM subsequently.::When all essential case is added, I would try to implement some JIT related optimization into JITC (like trace/method-based JIT).
::To develop *'''Please provide a graphics editor (interactive), we need rough estimated timeline for your work on the objects to be recognized with just one clicktask. Therefore, I propose to work in this first part, so that This should include the tools are more powerful. Unless these tasks are performed by one more student, in this case, we could divide them to have more GSoC midterms and personal commitments like exams or vacation ("non-coding time in the development of new tools.::#Finish the Octave GUI [http://wiki.octave.org/Summer_of_Code_Project_Ideas#Finish_the_Octave_GUI]::#Implement a Qt widget for manipulating plots [http://wiki.octave.org/Summer_of_Code_Project_Ideas#Implement_a_Qt_widget_for_manipulating_plots]::#Lighting [http://wiki.octave.org/Summer_of_Code_Project_Ideas#Lighting]::#Object selection in OpenGL renderer [http://wiki").octaveOptionally include two or three milestones you expect.org/Summer_of_Code_Project_Ideas#Object_selection_in_OpenGL_renderer]'''
:During the GSoC period. I would focus on "Enhance JITC functionality". "Migrate from LLVM JIT to LLVM MCJIT" would be completed in free time.
:*[[Community Bonding Period]] '''Please provide a rough estimated timeline for your work on the task. This should include the GSoC midterms and personal commitments like exams or vacation ("nonMay 27 -coding time"Jun 16). Optionally include two or three milestones you expect.''' :I have a lot of time available, so I can easily work for at least 40 hours per week and eventually on weekends:Get to know mercury, always aiming at the completion of my tasksoctave JITC code base. I take responsibility Deploy development environment and commitment never to abandon the project. In this kind of project, it is hard create a wiki page/blog to predict in detail the planning because many things mutate over timerecord progress.
:*[[May 27 - June 17:Week 1]]'''(Jun 17 - Jun 23)'''::At this time I want to talk to my mentor about the project to try to argue about new proposals and ideas that try Write a piece of code to absorb and improve other existing projects, thinking about my strategies to work faster. In addition to performing more tests on some prove how JITC compile functions.::I'm looking to contribute in some way in bug list and other requests from the Octave team and I can do it intensely during this period.
:*[[June 18 - July 02:Week 2,3]]'''(Jun 24 - Jul 7)'''::Seeing things Implement the functionality that have already been made, make small changes and fixes. Working in visual selection of individual points and curvesJITC compile functions.
:*[[July 03 - July 17: Week 4,5]]'''(Jul 8 - Jul 21)'''::Working in the individual surfacesWrite test-case, test and debug.
:*[[July 18 - August 01:Week 6]]'''(Jul 22 - Jul 28)'''::An insight into a graphics editor Write document, wiki and prepare for manipulating plotsmidterm evaluation.
:*[[August 02:Week 7]]'''(Jul 29 - Aug 4)'''::Mid-term evaluations deadlineWrite a piece of code to prove how JITC compile exponents.
:*[[August 03 - August 31:Week 8,9,10,11]]'''(Aug 5 - Sep 1)'''::Development of tools for manipulating plotsImplement the functionality that JITC compile exponents.
:*[[September 01 Week 12,13]] '''(Sep 2 - September Sep 15:]])'''::Improving the tools that are in progress Write test-case, test and integrates them with the tools that I developeddebug.
:*[[September Week 14]] '''(Sep 16 - September 23:]]Sep 22)'''::“Pencils down” date. Leave everything well documented Write document, wiki and prepare for final evaluation. (review the work, run tests and correct any bug)
:*[[September 24 - September 27:Future]]'''(Sep 23 - )'''::Preparing sample codes to submit to Google, discussing them with my mentor and Scilab community.Implement JIT related optimizations into JITC
[[Category:Summer of Code 2013 ]][[Category:Applicants]]
501

edits

Navigation menu