Monday, June 25, 2007

Slowly understanding MC2 design

This week was my last week of internship. I will now start to work fully on MC2. However, I did find some time to enhance the wiki page. I added a page about the merging algorithm and another one about the base classes with a diagram in each page. I also played a bit with the code and find a way to save and load slices. Have a look at the very bottom of the wiki page.

Tuesday, June 19, 2007

Projects warming up

It looks like our students have started working on their projects for real, after having been busy with finals, defenses etc.

Jerome, even if busy with his finals, has worked on the CSS viewer, named DomView. He worked on the Box Model, and DomView can now display box containers, as shown in the image. During this week, Jerome will work on text styles.

Jerome is documenting his work at http://jeromechauveau.free.fr/soc2007/docs/.

Benjamin is working on a Croquet Controller that logs the messages it receives. He modified one of the built-in controllers to log the messages on the Transcript window, and is now working on a new, custom controller able to store the received messages. During this week he'll try to have his controller replay simple sequences of messages.

Damien has started working on Monticello2, and he wrote a report on his work here.

Oleg will be busy with his finals until today, Tuesday June 19th, and has promised that starting tomorrow he will work hard on his project.

Mathieu has been busy fixing bugs in the BlockClosure decompiler, and will keep working on it during this week. He's also working on integrating the new compiler subsystem with the Refactoring Engine.

Thursday, June 14, 2007

Start coding on Monticello 2

I've finally started working on Monticello 2, as part of the Google Summer of Code 2007.

Reading the source code of MC2, I found it well written and lots of unit-tests are presents. Colin and Avi are really good developers.

While reading, I refactored and cleaned the code. The resulting packages can be downloaded at http://www.squeaksource.com/Monticello2.

I've also updated the wiki page with links to documentation http://wiki.squeak.org/squeak/5624.

Playing a bit with the model interfaces, I didn't find a way to load a package previously saved in a file-based repository. It seems the method MDMemo>>getSnapshotFrom: is missing.

It's not clear whether Colin and Avi want to keep their "slicing" model. The "slicing" model is the possibility to store anything to a repository: a method, an instance variable, a class, a package... According to Avi, it seems it was a good idea, but it complicates things a lot. We will have to discuss about that particular problem.

What I plan to do in the following days is to continue reading and enhancing the source code, and find a way to load a slice from a repository.

Friday, June 8, 2007

Status Report

Hi all,

here's a quick report on the status of the five Summer of Code projects.:

- Oleg, Mathieu, Damien and Jerome have been busy with university work, so they couldn't do much work on their SoC projects.

- Benjamin spent the first SoC week exploring the Croquet system and reading its documentation. His plan for this week was to build a simple Controller that can log external Croquet messages sent to it, for later replay.

[My apologies if this message was posted so late, but my laptop died - yet again!]

Wednesday, May 30, 2007

HTML/CSS Parser

If you want to have more informations about my GSOC project, please visit my blog at: jeromechauveau.free.fr/blogsoc...

Sunday, May 27, 2007

Working on Monticello 2

After some discussions with my mentor Stéphane Ducasse, I have decided to improve Monticello 2 (MC2) and make it usable to every squeaker as part of the Google Summer of Code.

I have started by opening a repository on SqueakSource on which I will be able to put my own work. It currently contains the last available versions of MC2 packages.

Then, I sent an email to the Squeak-dev mailing list requesting information about MC2: its design, its state... Colin Putney and Avi Bryant kindly answered, giving details.

I also found old posts on Colin's and Avi's blogs talking about MC2 design.

Finally, I've received a mail from Keith Hodges giving information about the current status of his work on Monticello and what I can do to improve MC2.

The next task I would like to achieve is opening a wiki page on the Squeak Swiki containing all information I can grab about MC2. This pages will also be used as a place for me to write new documentation.

Any feedback will be appreciated.

Monday, May 21, 2007

Seven Days to GSoC start: looking forward and looking back

Next monday will mark the start of the Google Summer of Code 2007: from that day the students will officially start working on their projects (and getting paid, too). But since there's nothing forbidding them to start working earlier, I've just sent our five students an email asking whether they've done anything during this interim period and, in case, what they've done.

While we wait for them to reply, I'd like to look back for a moment to the selection process. Using an agile/XP term, we could call this a little retrospective.

So, what went well with our selection process? First of all, the fact that we had so many student proposal, and most of them came from students sincerely interested in working on/with Squeak, and not just in it for the money. The fact that we had to coordinate with many other GSoC projects in order to select our 5 students is another proff of the level of the students who applied for a Squeak project.
Another thing that I'd like to remark is the level of involvement of our mentors. They all took their job seriously, throughly examining and evaluating all the proposals. Kudos to them!

What could be improved? Personally, I felt that there was a little "creeping" in the mentor and proposal lists. We started with ~10 mentors and 12 proposals on our list, we ended up with 14 mentors and 18 proposals. Freezing the two lists a little earlier can make coordination a little easier.
I'd also like to have more people on the Squeak IRC channel during the whole proposal submission period. This way people coming into #squeak to ask for info will have more opportunities for a correct answer.

What could we experiment with? In the past weeks I was toying with the idea of a Squeak bounties system. If we'd manage to put this or a similar system in place during the autumn, we could also use it for gathering proposals for next year's Summer of Code.
Also, for next year's Summer of Code it would be worth considering positioning Squeak as an umbrella project, managing proposals involving the main Squeak system, Seaside, Squeakland, Sophie, Croquet etc.

These are some of the points I wanted to make. Do you have any comments or any more points to add to the discussion? if so, then the comment form is waiting you!

Monday, May 14, 2007

How to load the NewCompiler

Hi everyone,

I juste want to add a litle tip about how to load the NewCompiler so here is the basic tree dependency:




So in oder to load the NewCompiler you have to fulfill the dependency. You can find them all in Squeaksource.

The next post I will show you how to write bytecode easily.
Let comments if you find it interesting or if you want any tips about the NewCompiler.

Thursday, May 3, 2007

NewCompiler ToDo

This last 3 days I have met Marcus at Bern and we discuss about things to do and the way of doing them.

Then here the work to be done:
- The more important things: make the decompiler work so we can propose it to the 3.10/3.11 release team.
- Have 2 parser so we can work on one without breaking it all
- Remove the reference to the RBParser and RBToken
- Clean the interface of the RBNode
- Integrate the continuations from Seaside
- Make debug it work in the debugger
- Profile the compiler to optimize it.
- Create some visitor to have the AST annotations and remove the token
- Work on the VM and new bytecodes/primitives
- ...

Up to now I have look at VMMaker and implement some bytecodes the improve the performance of the method with closures by 6. Those bytecode are experimental and we should propose some more efficient.

We have also change the organization of the NewCompiler. So now we have 3 packages:

- AST: Package for the RBNode and RBToken (which should be removed)
- NewParser: Package containing the parser so you can use it for your purpose without loading the complete compiler. We make this package mostly to make the RefactoringEngine using the SqueakParser so we can remove the RBParser.
- NewCompiler: The closure compiler

Thursday, April 26, 2007

Introduction to the NewCompiler project

Here is a short description for the NewCompiler for Squeak project.

This project aims to:

- provide a better framework interface
- bring full closures to an usable state
- provide many ways to manipulate your code (e.g. ByteSurgeon, ChangeBoxes, Reflectivity, Gutenberg..)

Last year for the Summertalk I implemented the following features:

- complete support for method pragmas
- enhanced error messages for the new parser
- support for parsing and modeling comments

I have discussed with Marcus, we started the project by doing some benchmark to see how slow the NewCompiler is compared to the current one. The conclusion was that we need new bytecodes and new primitives to make the closures as fast as blocks were before.

We will also document the closures and how the user can interact with the NewCompiler.

If have questions feel free to join the NewCompiler mailing list.

Sunday, April 15, 2007

Introducing... Squeak's Summer of Code 2007 Projects

With this post, I'd like to introduce to you the five projects that have been selected for this year's Summer of Code. They are:

Developing a package model
by Damien Cassou, mentored by Stephane Ducasse

Improving the Compiler frameworks
by Mathieu Suen, mentored by Marcus Denker

A Squeak HTML/CSS Viewer
by Jerome Chauveau, mentored by Todd Blanchard

Collaborative Development
by Benjamin Vanderheyden Schroeder, mentored by Ralph Johnson

One Wiki to Rule Them All
by Oleg Korsak, mentored by Keith Patrick Hodges

This five projects have been selected among 35 proposals submitted by 25 students.

Saturday, April 14, 2007

Welcome to the Summer of Squeak!

Hello, and welcome to the Summer of Squeak!

This blog is dedicated to the Squeak projects for the Google Summer of Code 2007 program. It is a collective blog managed by the students, mentors and admins of the Squeak Summer of Code group.

With this blog, we hope to give you an insider view on the projects, and help you track them. So if you have any question or remark, don't hesitate to leave a comment or to send us a message.