<h3>Unicode support</h3><ul><li> Description: Squeak's support for Unicode can be improved:<ul><li> more unicode to character code translators.</li><li> review existing code and clean it up, some classes have methods that have different code to do same thing.</li><li> check the code for correctness, and fix it (example: the unicodeToMacRoman actually does unicode to latin1).</li><li> improve performance of the translators: as an example the UTF8 translator creates a write stream, but then actually writes out bytes to your file system one byte at a time as it considers if the unicode byte needs to be made into a utf8 sequence. Needless to say if you have a multiple MB text file this suddenly takes millions of file I/O requests to the operating system which is really slow. </li></ul></li><li> Mentor: Todd Blanchard</li></ul><h4>Squeak Improving the New Compiler</h4><ul><li>Mentor: Mathieu Suen and Marcus Denker</li><li>Level: Intermediate</li></ul><p>The goal is to enhance the new compiler.</p><ul><li>One of the task is to provide a better error handling:<ul><li> Report error of token that is not in the Scope (ie Class not define, variable not in the scope,..)</li><li> Provide a way to capture errors. For example when Monticiello load code it should be able to mute errors and make a report at the end of the load. </li></ul></li><li> Another task is to work on the Parser.<ul><li> Parsing is slow. May be a hand written Parser would be better and be easier to report errors.</li><li> The Parser should also be able to work with a syntax highlight (eg Shout) </li></ul></li><li> Work on a Bootstrap compiler:<ul><li> When you are working on the compiler often you break it then since you have no rescue compiler you will be jammed. The solution is to automate a copy of the compiler and make it possible to switch between them and also adopt fixes... </li></ul></li><li> Make a better model of Scope and Varaible:<ul><li> Now the scope and variable models are very complex. The idea would be to design a better model. It would be profitable for the ir-decompiler and the ast-to-ir-generator. </li></ul></li></ul><p>Student: Jannick Menanteau.</p><h4>Minimal UI For Embedded Systems, Mobile computing and Kiosks</h4><ul><li> Mentor: Tansel Ersavas</li><li> Level: Intermediate</li></ul><p>This project is about creating a minimal UI in Squeak suitable for embedded systems, kiosks, mobile phone platforms such as "Android" and internet devices such as Nokia N810 and Chumby. Many complex looking UI functions can be developed using a minimal set of tools and some simple code using Squeak. This UI only requires basic Squeak graphics and text support and doesn't use MVC or Morphic. The code can be harvested from a project that was done 8 years ago for an 8MB PDA handheld device and refined to be published to be used in open source projects. An early draft of the code was ised in a system that can be seen at: <a href=""></a>. The system also lends itself to code generation and the project will address this part also.</p><h3>Squeak OpenDBX plugin</h3><ul><li> Mentor: esteban ...</li> <li><a href=""></a></li></ul><p>OpenDBX is an extremely lightweight but yet extensible database access library written in C. It provides an abstraction layer to all supported databases with a single, clean and simple interface that leads to an elegant code design automatically. This is an excellent option to make an application support different databases with little effort and in a very efficient way.</p><p>The project plan has been split into two phases:</p><p>First phase: OpenDBX squeak plugin</p><p>This is the phase I consider to be reachable during Google Summer of Code.</p><p>During this phase, the squeak plugin for OpenDBX, which will be like an OpenDBX wrapper, will be developed.</p><p>The intention is to make this abstraction the more object oriented possible. This wrapper will allow objects to send messages which will represent data base operations. The wrapper will then, of course, talk to the OpenDBX library. To make this possible, the Squeak Foreign Function Interface ( will be used.</p><p>FFI is used to call functions located in shared libraries which are not part of the Squeak VM nor its plugins.</p><p>After finishing this first part of the project, a truly object oriented access to mayor RDBMS will be obtained.</p><p>Second phase: GLORP driver:</p><p>I believe, getting this feature completed within the GSoC dates, will be a little difficult. However, I will, for sure, do it as soon as I finish with the first phase.</p><p>GLORP ( is an open-source object-relational mapping layer for Smalltalk.</p><p>As the dirver for postgreSQL works very well with GLORP, I will inspect it and try to reproduce a similar driver architecture for the first phase result.</p><p>As a result of this feature, people will be able to use an ORM (GLORP in this case) with a generic driver that cantalk to almost all RDBMS.</p><p>students: Mariano Martinez Peck</p><h2> Sponsors</h2><ul><li> <a href="">ESUG</a></li></ul>