GSoC/GCI Archive
Google Summer of Code 2012

ESUG (European Smalltalk User Group)

Web Page:

Mailing List:

The European Smalltalk User Group (ESUG) is a non-profit user organization that supports all kinds of Smalltalk related initiatives, with the main focus on free/open-source projects which benefit the whole Smalltalk community and beyond.

ESUG was registered in 1991 with goals to do the following and more:

  • Promote communication between Smalltalk users through meetings, periodic newsletter, software exchange, electronic mail, etc., and by organizing events like the ESUG Conference,
  • Promote books, articles, publications, student internships, etc.
  • Promote open-source Smalltalk projects through ESUG SummerTalk which funds students during the summer,
  • Although the name of ESUG says it is European, the truth is that the scope is worldwide. It links all individual and corporate users of Smalltalk programming environments in the world,
  • Support local users groups and establish new ones,
  • Support Smalltalk projects and initiatives such as the free web hosting, source code servers, etc.
  • Identify Smalltalk users and their needs and represent them towards discussions with vendors.
  • Represent the Smalltalk community in discussions with the major Smalltalk vendors.


  • ARM JITer for Squeak VM The Squeak VM is the dynamic virtual machine used for many open-source software projects such as Pharo or the Newspeak language. CogVM is a development of the Squeak VM which adds a powerful Intel x86 JITer. Similar to this development, this project would implement an ARM JITer.
  • Call graph - Type Inference   Enhance Francisco Garau's implementation of Concrete Type Inference to analize complex expressions.     Make a full queriable call graph from a given expression, with several categories of data per method such as: Entry and output types, related bytecode, variables that potentialy change if you run the expression, etc.
  • Esse, a framework for visualizing, storing and exploring ideas Esse is a framework for building presentations of a new generation. Somewhat similar to, but even more advanced in perspective. The emphasis is on supporting thinking processes, saving, evolving, presenting and sharing ideas.
  • Hazelnut Hazelnut is a project aimed to bootstrap a minimum and working kernel of the Pharo smalltalk system. Hazelnut should provide kernel generation, validation, and serialization into a new image. Also, it should have a way to debug and test the results, and to make the resulting kernel growable via compilation, inclusion of compiled libraries or remote programming.
  • HMI (Human-Machine Interface) with Amber A framework for building Human-Machine Interfaces with Pharo back-end providing model, and presentation front-end in Amber.
  • Interactive & social online Smalltalk tutorial In this Web 2.0 age there are many things that can be done interacting only with a web browser, even learning a programming language. Sites like RubyMonk ( or Codecademy ( are great starting points for newcomers to a programming language. The goal of this project is to have a site used for anyone who wants to start to learn Smalltalk in an interactive and challenging way. All the progress is tracked and it can be shared to friends across social networks.
  • Nautilus Nautilus is a new browser based on the latest system meta model tools like RPackage or Ring. The goal is to ensure this browser has the stability and all the features required to become the next standard browser.
  • Package management with Fuel Fuel is a general purpose binary serializer. It already saves and loads classes without using a compiler. Package management has additional challenges like check dependencies, run pre- and post-scripts, override existing classes or methods, tolerate superclass shape changes, run system validations, send notifications, clean uninstall, and others. Provide integration with current tools like Monticello, Gofer and Metacello would be good.
  • Rizel - Multidimensional Profiler We propose multidimensional profiling as a automatic way to repeatedly profile a software execution by varying some variables of the execution context, essentially software versions and benchmarks. The goal of this project is to help to detect and understand the reason of a slow or fast execution, caused by the software evolution. Rizel will answer questions like “How the performance has evolved over the time?” and “Which software version is the cause of a drop of performance? Why?”
  • TestSurgeon Unit tests are helpful for assessing base code to do what is expected to. It has been multiply shown that coverage is correlated with bug reduction. This situation is more often when applying TDD. The results? A well tested code, but unmaintainable test code. TestSurgeon is a tool to help developers in unit test refactoring through a software visualization of test similarity.