Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
research:plomo [2013/09/21 09:11] mdenkerresearch:plomo [2013/09/21 11:47] – [Work Package One Achievements: Opal Open Compiler Infrastructure] stef
Line 57: Line 57:
  
 ==== Work Package One Achievements: Opal Open Compiler Infrastructure ==== ==== Work Package One Achievements: Opal Open Compiler Infrastructure ====
-The compiler framework was used as the basis to build a type system for Pharo: Gradualtalk [Alle13a]. A gradually-typed Smalltalk allows to enable incremental typing of existing programs. The main design goal of the type system is to support the features of the Smalltalk language, like metaclasses and blocks, live programming, and to accomodate the programming idioms used in practice. We studied a number of existing projects in order to determine the features to include in the type system. As a result, Gradualtalk is a practical approach to gradual types in Smalltalk, with a novel blend of type system features that accomodate most programming idioms.+The compiler framework was used  to build a type system for Pharo: Gradualtalk [Alle13a]. A gradually-typed Smalltalk allows one to enable incremental typing of existing programs. The main design goal of the type system is to support the features of the Smalltalk language, like metaclasses and blocks, live programming, and to accommodate the programming idioms used in practice. We studied a number of existing projects in order to determine the features to include in the type system. As a result, Gradualtalk is a practical approach to gradual types in Smalltalk, with a novel blend of type system features that accommodate most programming idioms.
  
 In the context of the Gradualtalk type system, we have further developed, debugged and released the compiler framework. Opal has been integrated as the new compiler for Pharo [Bera13a]. It is stable, robust and is the new default compiler for day to day development in Pharo3. Opal provides the basis for many new features in Pharo3 and provides a new foundation for building new layers such as an In the context of the Gradualtalk type system, we have further developed, debugged and released the compiler framework. Opal has been integrated as the new compiler for Pharo [Bera13a]. It is stable, robust and is the new default compiler for day to day development in Pharo3. Opal provides the basis for many new features in Pharo3 and provides a new foundation for building new layers such as an
Line 75: Line 75:
 We developed EPICEA a new model of changes and an implementation representing all the changes made during development [Dias13a] - By changes we mean: method, class, package definition, modification, removal but also new coding session, refactorings ... It is the basis for a large number of analyses (cherry picking, code review support, replay of sequences, code recovering, browsing in the past) and tools that we will build around change management. In particular EPICEA will be extended to support branch merging and propose new analyses to help developer taking merging decisions. We developed EPICEA a new model of changes and an implementation representing all the changes made during development [Dias13a] - By changes we mean: method, class, package definition, modification, removal but also new coding session, refactorings ... It is the basis for a large number of analyses (cherry picking, code review support, replay of sequences, code recovering, browsing in the past) and tools that we will build around change management. In particular EPICEA will be extended to support branch merging and propose new analyses to help developer taking merging decisions.
  
-Complimentary to that, we developed DIE, a Domain-Specific Aspect Language that provides a set of domain-specific abstractions for building plug-ins to a development environment. It allows tool builders to declare event handlers in a concise and homogeneous way, allowing IDE extensions and tools to express interest in different streams of events seamlessly, with a consistent syntax regardless of the source of the event. +Complementary to that, we developed DIE, a Domain-Specific Aspect Language that provides a set of domain-specific abstractions for building plug-ins to a development environment. It allows tool builders to declare event handlers in a concise and homogeneous way, allowing IDE extensions and tools to express interest in different streams of events seamlessly, with a consistent syntax regardless of the source of the event. 
   
  
Line 118: Line 118:
   *  Faster MSE import.   *  Faster MSE import.
  
-We participated to the new release of Pharo 1.4 and 2.0 and are actively developing Pharo3. The speed of Pharo development is increasing with each version. For Pharo2, a list of changes can be found on the [[http://code.google.com/p/pharo/wiki/ActionsInPharo20|website]]. +We participated to the new release of Pharo 1.4 and 2.0 and are actively developing Pharo3 (http://pharo-project.org). The speed of Pharo development is increasing with each version. For Pharo2, a list of changes can be found on the [[http://code.google.com/p/pharo/wiki/ActionsInPharo20|website]]. 
-PLOMO members contributed many smaller and larger improvements found while doing the research work described in this report. When visiting, PLOMO members take care to organize Pharo Sprints (open meetings focussed on fixing bugs and integrating features).+PLOMO members contributed many smaller and larger improvements found while doing the research work described in this report. When visiting, PLOMO members take care to organize Pharo Sprintsopen meetings focussed on fixing bugs and integrating features.
  
-An example for how PLOMO directly contributed can be seen with the type system work. While type-checking the code of the Pharo system, a number of problems where detected. Examples where dead code, wrong inheritance relationships between classes and others. All these problems have been fixed in Pharo2.+A small example for how PLOMO directly contributed can be seen with the type system work. While type-checking the code of the Pharo system, a number of problems where detected. Examples where dead code, wrong inheritance relationships between classes and others. All these problems have been fixed in Pharo2.
  
 For Pharo3, PLOMO contributed in a major way: the Opal Compiler replaced the old default compiler infrastructure. For Pharo3, PLOMO contributed in a major way: the Opal Compiler replaced the old default compiler infrastructure.
Line 191: Line 191:
  
 == From PLEIAD to RMoD == == From PLEIAD to RMoD ==
-  * Vanessa Peña and Alexandre Bergel, Aug 15 until Aug 20, 2011. From Aug 20 until Aug 28 they attended [[ESUG|http://www.esug.org/wiki/pier/Conferences/2011]], a conference co-organized by RMoD. The topic of this research visit is test coverage and software visualization. Result of the research activity on software visualization and code profiling have been presented at ESUG. +  * Vanessa Peña and Alexandre Bergel, Aug 15 until Aug 20, 2011. From Aug 20 until Aug 28 they attended [[http://www.esug.org/wiki/pier/Conferences/2011/|ESUG]], a conference co-organized by RMoD. The topic of this research visit is test coverage and software visualization. Result of the research activity on software visualization and code profiling have been presented at ESUG. 
   * Romain Robbes from July 18 until July 24, 2011. Partially funded by Pleiad.   * Romain Robbes from July 18 until July 24, 2011. Partially funded by Pleiad.
   * Esteban Allende from July 19 until October 2, 2011. Esteban's stay was partially funded by the French Embassy in Chile.    * Esteban Allende from July 19 until October 2, 2011. Esteban's stay was partially funded by the French Embassy in Chile.