Changes

Jump to navigation Jump to search
highlight link to final report
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 ==
   −
I develop my project in a repository called [https://git.sugarlabs.org/~mzepf/gsoc-python-export gsoc-python-export] in the SugarLabs Gitorious system. If you would like to have a look at my latest progress, check out the <code>primitive-class</code> branch. (The <code>master</code> branch is only used for submitting merge requests to [https://git.sugarlabs.org/turtleart/mainline the main TurtleArt repository].)
+
=== gsoc-python-export on gitorious ===
 +
 
 +
I develop my project in a repository called [https://git.sugarlabs.org/~mzepf/gsoc-python-export gsoc-python-export] in the SugarLabs Gitorious system. If you would like to have a look at my latest progress, check out the <code>primitive-class</code> branch. It contains the latest '''stable''', i.e. working, version of TurtleArt and the export tool.
 +
 
 +
The branch <code>type-system</code> contains some work-in-progress on the type system for <code>Primitive</code> objects that I am currently introducing. It's a major change that affects how blocks are executed and exported to ASTs. Therefore, this branch should be considered '''unstable''', i.e. there is no guarantee that things will work or even that you'll get useful error messages. As soon as the type system is fully established and everything works again, this branch will be merged back into <code>primitive-class</code>.
 +
 
 +
The <code>master</code> branch is only used for submitting merge requests to [https://git.sugarlabs.org/turtleart/mainline the main TurtleArt repository].
 +
 
 +
=== ta-python-export-dev on github ===
    
Design documents, sample code, etc. go into [https://github.com/outofthecave/ta-python-export-dev ta-python-export-dev] on GitHub. There, the <code>master</code> branch is the most recent one.
 
Design documents, sample code, etc. go into [https://github.com/outofthecave/ta-python-export-dev ta-python-export-dev] on GitHub. There, the <code>master</code> branch is the most recent one.
Line 36: 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 ==
51

edits

Navigation menu