Summer of Code/2013/Turtle Blocks Python export project: Difference between revisions

describe the type-system branch in the gitorious repo
highlight link to final report
 
(4 intermediate revisions by the same user not shown)
Line 2: Line 2:


The mentors for this project are [[User:Walter|Walter Bender]] and [http://wiki.laptop.org/go/User:Claudia_Urrea Claudia Urrea].
The mentors for this project are [[User:Walter|Walter Bender]] and [http://wiki.laptop.org/go/User:Claudia_Urrea Claudia Urrea].
The summer is over, so I have written a '''[[Media:Final_Report_on_Turtle_Blocks_Python_export.pdf|final report]]''' on my project. It gives an overview of the task, my ideas and their implementation, as well as the final status of the project.


== Repositories ==
== Repositories ==
Line 44: Line 46:
*** Introduce strong typing to <code>Primitive</code>s.
*** Introduce strong typing to <code>Primitive</code>s.
*** Pass argument blocks to the functor as <code>Primitive</code> objects, not as ASTs or return values of a function call.
*** Pass argument blocks to the functor as <code>Primitive</code> objects, not as ASTs or return values of a function call.
*** Screen dimensions from the 'Presentation templates' palette<ref name="requires-add-imports" group="note" />
*** Runtime control (e.g., exit, suspension) from the 'Flow operators' palette
** August 26 – September 1 (1 week)
** August 26 – September 1 (1 week)
*** Heaps from the 'Extra options' palette
*** Introduce disjunctions of <code>Type</code>s, <code>ArgSlot</code>s, argument lists, and <code>Primitive</code>s.
*** External functions (chr, int, mathematical function, tamyblock.py) from the 'Extra options' palette<ref name="requires-add-imports" group="note" />
*** Adjust the export functionality to the type system.
*** Start re-writing 'old' <code>Primitive</code>s to make use of the new type system.
*** Write new documentation about how to create a new block, including creating new <code>Primitive</code>s.
*** Comments from the 'Extra options' palette: This is especially difficult because Python's <code>ast</code> module does not support comments natively.
*** Comments from the 'Extra options' palette: This is especially difficult because Python's <code>ast</code> module does not support comments natively.
** September 2 – September 8 (1 week)
** September 2 – September 8 (1 week)
*** Events and user input from the 'Sensors' palette<ref name="requires-add-imports" group="note" />
*** Screen dimensions from the 'Presentation templates' palette
*** Runtime control (e.g., exit, suspension) from the 'Flow operators' palette
*** Heaps from the 'Extra options' palette
** September 9 – September 15 (1 week)
*** External functions (chr, int, mathematical function, tamyblock.py) from the 'Extra options' palette
*** Events and user input from the 'Sensors' palette
*** Sounds and sprites from the 'Media' palette
*** Sounds and sprites from the 'Media' palette
*** Presentation templates from the 'Presentation templates' palette<ref name="requires-add-imports" group="note" />
** September 9 – September 15 (1 week)
*** Multiple turtles and custom turtle shells from the 'Extra options' palette<ref name="requires-add-imports" group="note" />
*** Display management (hide/ show blocks, toggle full screen) from the 'Presentation templates' palette
*** Display management (hide/ show blocks, toggle full screen) from the 'Presentation templates' palette
*** Printing and loading blocks and palettes from the 'Extra options' palette<ref name="requires-add-imports" group="note" /><!-- These are very specific to Turtle Blocks. We need further discussion how this should look in the output of the exported Python code. --><!-- TODO report results of discussion -->
* September 16 – September 23 (1 week): Test exporting different kinds of blocks in combination. Fix the last bugs. Clean up.
* September 16 – September 23 (1 week): Test exporting different kinds of blocks in combination. Fix the last bugs. Clean up.
'''Notes'''
<references group="note">
<ref name="requires-add-imports">This may require importing additional modules from Turtle Blocks.</ref>
</references>


== Decisions ==
== Decisions ==