diff options
Diffstat (limited to 'community')
-rw-r--r-- | community/weblogs/ArneBab/2011-04-06-application-pyhurd.mdwn | 53 |
1 files changed, 43 insertions, 10 deletions
diff --git a/community/weblogs/ArneBab/2011-04-06-application-pyhurd.mdwn b/community/weblogs/ArneBab/2011-04-06-application-pyhurd.mdwn index 8e887e41..00b1cff7 100644 --- a/community/weblogs/ArneBab/2011-04-06-application-pyhurd.mdwn +++ b/community/weblogs/ArneBab/2011-04-06-application-pyhurd.mdwn @@ -22,17 +22,50 @@ For this years GSoC I want to turn the currently rudimentary Python Bindings of *still very rough* -0. (before GSoC) Read up on the current C-interface to the Hurd and Cython. Especially grok the Hurd hacking guide. Add docstrings to all existing source files explaining what they do. Add auto-generated API-docs. Deliverable: Easy to understand API-docs of the current PyHurd, a simple way to generate them from the sources. 2 Weeks. -1. Check the API. - 1. Implement a Hello World translator, naivly implementing the necessary Mach parts, as example to test the current API. + * *Community bonding period.* + Read up on the current C-interface to the Hurd and Cython. Especially grok the Hurd hacking guide. Add docstrings to all existing source files (where they are missing) explaining what they do. Add auto-generated API-docs. Deliverable: Easy to understand API-docs of the current PyHurd, a simple way to generate them from the sources automatically. + * *May 23.* + Coding starts. + * *May 30.* + Finished a basic Hello World translator, naively implementing the necessary Mach parts directly in the translator. + 1. A simple program which gets a Mach port and can receive messages on that port. It has to take and hold the port at startup and send a reply port, needs to use mach_msg to get the messages, should be able to deallocate the port and must have a kill condition (for example 10 received messages). + 2. stdout functionality, to print all Mach messages (for debugging and to make sure that they really get received entirely). + 3. a parser for the Mach read file message similar to trivfs\_S\_io\_read + * *June 6.* + Moved the functionality for reading into a simple API using decorators to define actions + and ported Hello World to use it: + + """Show Hello World.""" + from translator import repres + @repres.text.read + def say_hello(size): + return "Hello, World!"[:size] + * *June 13.* + Implemented single file read-write in the API. Added a simple writethrough translator. The API code is nicely commented. + * *June 20.* + + * *June 27.* + * *July 4.* + * *July 11.* + Mid-term: trivfs in python works: It is possible to write translators in Python with relative ease. + * *July 18.* + * *July 25.* + * *August 1.* + * *August 8.* + * *August 15.* + Suggested Pencils down. The translator API is easy to use, there are many example translators and there is a full featured settrans command in Python using the easier controlling API which shows how to control the Hurd directly from Python. + * *August 22.* + Firm pencils down. + +2. Check the existing API. 2. redesign and realize an updated low-level API. 3. design a pythonic high-level API for translators. -2. Realize a pythonic trivfs library and an example translator using it. -3. Mid-Term: trivfs works. Push the code to https://github.com/ArneBab/PyHurd -4. Implement more complex and specialized translator libraries, along with example translators. This should recreate the Hurd libraries for Python. Ideally seperate the libraries, so programmes can simply import the convenience functionality they need. -5. Re-implement some hurd specific utils in pyhurd such as settrans. -6. With the remaining time, create as many interesting translators as possible. Ideas include all compression formats supported by Python, markdown to HTML translators to be accessed with nsmux (file.mdwn,,html), automatic version tracking directories and overlay stores which store changes to nonchanging files like squaschfs, but also simple translators like translator-based write-locking of files by not catching write-accesses. -7. Push the final code to https://github.com/ArneBab/PyHurd +3. Realize a pythonic trivfs library and an example translator using it. +4. Mid-Term: trivfs works. Push the code to https://github.com/ArneBab/PyHurd +5. Implement more complex and specialized translator libraries, along with example translators. This should recreate the Hurd libraries for Python. Ideally seperate the libraries, so programmes can simply import the convenience functionality they need. +6. Re-implement some hurd specific utils in pyhurd such as settrans. +7. With the remaining time, create as many interesting translators as possible. Ideas include all compression formats supported by Python, markdown to HTML translators to be accessed with nsmux (file.mdwn,,html), automatic version tracking directories and overlay stores which store changes to nonchanging files like squaschfs, but also simple translators like translator-based write-locking of files by not catching write-accesses. +8. Push the final code to https://github.com/ArneBab/PyHurd ## Initial Fix @@ -112,7 +145,7 @@ Also i want to get it merged into the main git repositories, so it is directly a I’d love to work on PyHurd, because it grips me more and more. For example a high level API might get as simple as from translator.source.text import * - from translator.representation.tree import * + from translator.repres.tree import * def source_text_changed(text): … (adapt tree object) def repres_tree_changed(tree): … (adapt text object) → 2-way connectingk,5 |