Thursday, May 6, 2010

Initial Schedule

I would like to share with you my initial schedule from project proposal. It is not yet finished but I will be later modifying it to express changes. As you can see I have some time reserved for changes on further point of schedule.
March 30. I have already started gathering information on how I can approach this idea:
  • Downloaded sources from Scala SVN repository
  • Finished environment setup
  • Debugged the NSC parser and GenMSIL.scala with simple Scala program and ran it as .Net program.
  • Wrote a simple plugin for NSC following with a tutorial on webpage
  • Reading “Programming in Scala” by Martin Odersky, Lex Spoon, and Bill Venners
April 26. I am fully aware of time limitations - 3 months it is not a long time for completing such GSoC project. For this reason, I am planning to start as soon as possible especially during community-bonding-period. During this time, my aim is to revise my approach of implementation and prepare proof-of-concept prototype, which can later be improved or changed during actual GSoC timeline. In the meantime, I would like to review some of LINQ implementation attempts for .Net, as well as for Java. Also my aim is to get better knowledge in backend of LINQ in .Net such as Expression Trees and SQO and how they look from parser side on C# ANTLR parser another good source to find more answers will be Object-oriented LINQ for Scala.

During this time I am also planning to finish some mini projects to better understand Scala compiler. I will post more information about this projects during next few days.

May 24. During this week I will have discussed with a mentor chosen way to go with prototype basic LINQ queries this means in C# transformed to invocations on IEnumerable. This should be finished within max 2 weeks and parser should allows to parse basic LINQ expressions.

May 31. I will finish several of SQO such as where, order by and move forward joins, grouping/aggregation/partitioning.

June 7. On this week I will start implementing test for LINQ in Scala based on compiler tests for LINQ from Mono mcs (gtest-linq*, gtest-etree*). After this date I should have list of required tests post on blog. Later with introducing some new functionality I will always introduce corresponding before that bunch of unit-tests to fallow rules from TDD.

June 14. I will start implementing Expression Trees this should takes 2 up to 3 weeks of full work.

June 21. Here I should have fallowing expressions class parameter/binary/constatnt and also mathemathical expressions e.g. subtract.

June 28. On this week Expression Trees should be finished and building advanced queries with lambda expressions pares by Scala compiler should be possible.

July 5. Final polishing prototype and fixing bugs before midterm evaluation.

July 12 midterm evaluation. Due this date I should have a working prototype with all requirements fulfilled. I should be possible to input any type of LINQ queries and they should be translated into corresponding Scala Structure or newly implemented Expression Trees.

July 16 19:00 UTC midterm evaluation deadline.

July 19. Start creating project documentation during free time. Also after first evaluation I would like to start filling gaps in prototype to make it fully functional.

July 26. On this week I should have discussed with mentor possible problems and solutions to nail it before the deadlines.

August 2. Finishing documentation and fixing left bugs. After this date no new features should be added.

August 9. Suggested 'pencils down' date. From this point I am planning to polish the project documentation and improve comments in code structure. It will also be the time to prepare first compiler release e with LINQ-awareness.

August 16. Prior to this time, both the project code and documentation should be submitted to SVN without any exceptions on separate branch.

August 20.Final evaluation.

August 30. Deadline for code submission to Google.

No comments:

Post a Comment