Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
research:plomo2 [2016/09/20 15:33] – [Achievements] jfabry | research:plomo2 [2016/10/14 10:12] – [Achievements] mdenker | ||
---|---|---|---|
Line 52: | Line 52: | ||
===== Achievements ===== | ===== Achievements ===== | ||
- | === Scientific Results | + | === Scientific Results === |
- | == WP 1 == | + | == WP 1: Reflective Foundations |
- | Progress on a new iteration on the reflective layer and metaobject protocol for Pharo: We have implemented the Slots Mechanism in Pharo, which resulted in a first-class reification of instance variables and their accessing through assignment and reading. This allows us to hook into reading and writing of instance variables and perform meta-level operations on them, e.g. adding breakpoints to the reading of a specific instance var, or a transparent notification mechanism for when a specific instance variable is written. The latter can be used, e.g. in WP3 to dynamically update a visualization of the object that contains the instance variable whenever the variable changes. | + | Progress on a new iteration on the reflective layer and metaobject protocol for Pharo: We have implemented the Slots Mechanism in Pharo, which resulted in a first-class reification of instance variables and their accessing through assignment and reading. This allows us to hook into reading and writing of instance variables and perform meta-level operations on them, e.g., adding breakpoints to the reading of a specific instance var, or a transparent notification mechanism for when a specific instance variable is written. The latter can be used, e.g., in WP3 to dynamically update a visualization of the object that contains the instance variable whenever the variable changes. |
+ | Reflective operations in the form of meta-links can be added to any expression tree. All variables can now be annotated with meta data. Reflectivity has been improved to allow Meta- Links to be put on First Class Variables. All work has been integrated in Pharo5 development and is used already by other projects of RMOD and a research project of the University of Lugano/ | ||
+ | The object layout functionality of Pharo allowed us to work on supporting C-Types. The Opal Compiler was extended with primitive types and to emit new low-level bytecode instructions. Combined, this allows performance for use-cases like 2D and 3D frameworks to be speed up by 50-400% [13]. | ||
- | == WP 2 == | ||
- | Interaction | + | == WP 2: Visualizations Engines == |
+ | Two complementaries axes were investigated. Roassal 2D is a visualization engine to render data. Roassal 2D is employed to visualize any arbitrary set of data, including software-related data [5, 9] (e.g., source code, module dependencies), | ||
+ | The second axis is the visualization in 3D. For that purpose, we have improved the FFI support of Pharo to use external libraries. With that, we created binding to SDL2 which allowed to move the window management code from the Virtual Machine to Pharo (OSWindow). The 2D infrastructure work (OSWindow) has been taken up by another Project (Inria in collaboration with Thales). It has been extended with multi-touch support and a gesture engine. Besides pre-defined low level gestures (e.g., pinch or multi-finger swipe), the engine is extensible with user-defined gestures. The Woden 3D graphics engine is a first demo that uses this foundation to bring the ideas of Roassal to 3D. The new next generation graphics frameworks like Metal and Vulcan where the driving force to revisit Woden. The new framework Woden 2 uses the lowcode subsystem (see WP1) for a new generation, high perfomance 3D framework for Pharo. This will be the foundation of Roassal3D soon. Woden has already seen use outside of the PLOMO project, for example it is used for experiments with virtual reality at a large french multi-national company. | ||
- | With the new FFI and the OSWindow functionality, bindings | + | == WP 3: Tools for Analyzing Dynamic Information == |
- | [[https:// | + | Live Robot Programming (LRP) [10] as a case for the first two points of WP3: Visualization to navigate |
+ | We worked on refining the user interface framework Spec [4,16], together with its integra- tion with the visualization | ||
- | == WP 3 == | + | === Work outside |
- | + | Close proximity among the researchers also allowed work outside | |
- | Live Robot Programming (LRP) as a case for the first two points | + | |
- | + | ||
- | + | ||
- | === Scientific Results 2015 === | + | |
- | + | ||
- | == WP 1 == | + | |
- | Expressive Reflective Infrastructure: | + | |
- | We worked extensively on the new reflection infrastructure | + | |
- | The stay of Marcus Denker | + | |
- | + | ||
- | == WP 2 == | + | |
- | Advanced Visualization Techniques: | + | |
- | Roassal 2D continues to improve. The 2D infrastructure work (OSWindow) has been taken up by another | + | |
- | + | ||
- | == WP 3 == | + | |
- | Analyzing Dynamic Information: | + | |
- | The work on Live Robot Programming (LRP) continues. The visit of Marcus Denker to Chile in spring 2015 helped to make serious progress on the base implementation infrastructure: | + | |
=== Publications === | === Publications === | ||
Line 103: | Line 90: | ||
=== Software artifacts === | === Software artifacts === | ||
- | * Pharo: Pharo3 has been released Spring 2014, Pharo4 has seen active development with a release planned for early 2015. [[http:// | + | * Pharo: Pharo3 has been released Spring 2014, http:// |
- | * Pharo: Pharo4 has been released Spring 2015, Pharo5 has seen active development with a release planned for early 2016. [[http:// | + | * Pharo: Pharo4 has been released Spring 2015. |
- | * Moose: Version 5.0 was relseased. [[http:// | + | |
- | * Roassal2D: Fully based on Athens, the vector graphics support in Pharo | + | |
- | * Roassal3D: first version of a 3D version of Roassal. [[https:// | + | |
- | * Woden: a new 3D graphic engine, the base of the next generation of Roassal3D. | + | |
- | * Improvement of the FFI [[http:// | + | |
- | * Reflectivity has been integrated in Pharo5 | + | |
* OSWindow has been integrated in Pharo4. | * OSWindow has been integrated in Pharo4. | ||
- | * The Opal Compiler | + | * Pharo: Pharo5 |
+ | * Reflectivity | ||
+ | * Moose: Version 5.0 was released. http:// | ||
+ | * Moose: Version 6.0 was released. | ||
+ | * Roassal2D: Fully based on Athens, the vector graphics | ||
+ | * Roassal3D: first version of a 3D version of Roassal. https:// | ||
+ | * Woden: a 3D OpenGL graphic engine, the base of Roassal3D. | ||
+ | * Woden 2: a new 3D graphic engine | ||
+ | Vulcan3D), it is the base of the next generation of Roassal3D. [[http:// | ||
+ | |||
=== Event organization === | === Event organization === | ||
Line 132: | Line 123: | ||
* Alexandre Bergel (Dec 2015) | * Alexandre Bergel (Dec 2015) | ||
* Johan Fabry: July 2016. Subject was the writing of the book on Spec. | * Johan Fabry: July 2016. Subject was the writing of the book on Spec. | ||
+ | * Ronie Saldago: April - September 2016, to Lille. Working on a new FFI library and a 3D visualization engine | ||
+ | * Alexandre Bergel: December 2016, to Lille. Working on a new platform for software and data visualization | ||
+ | |||
+ | |||
Lille to Santiago: | Lille to Santiago: |