summaryrefslogtreecommitdiff
path: root/community/weblogs/ArneBab/2011-04-06-application-pyhurd.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'community/weblogs/ArneBab/2011-04-06-application-pyhurd.mdwn')
-rw-r--r--community/weblogs/ArneBab/2011-04-06-application-pyhurd.mdwn56
1 files changed, 42 insertions, 14 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..b0e57bfb 100644
--- a/community/weblogs/ArneBab/2011-04-06-application-pyhurd.mdwn
+++ b/community/weblogs/ArneBab/2011-04-06-application-pyhurd.mdwn
@@ -20,19 +20,47 @@ For this years GSoC I want to turn the currently rudimentary Python Bindings of
## Preliminary Schedule
-*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.
- 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
+ * *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 get and hold its 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.event
+ def on_text_read(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.*
+ Access Control and file attributes. Added lock_file translator which just adjusts the effective file access codes and can be used to lock a file as long as the translator is used. Might be useful for quick testing.
+ * *June 27.*
+ Translator commandline arguments and testing.
+ * *July 4.*
+ Translator: Overlay with backend store: write changes to a different file. Makes any file writeable, but keeps the changes only visible for the user who set up the translator. Effectively single-file unionmount.
+ * *July 11.*
+ Mid-term: trivfs in python works: It is possible to write translators in Python with relative ease.
+ * *July 18.*
+ More complex, specialized and helper translator libraries, along with example translators. This should recreate some of the Hurd libraries for Python and add convenience options.
+ * *July 25.*
+ Full featured setttrans in Python.
+ * *August 1.*
+ Redesigned and realized an updated controlling API with the existing direct Cython bindings.
+ * *August 8.*
+ More translators and integrating into the build system.
+ * *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. The code is pushed to <https://github.com/ArneBab/PyHurd> and a git repo at <http://git.savannah.gnu.org/cgit/hurd> and integrated into the build system with a switch to enable building PyHurd.
+ * *August 22.*
+ Firm pencils down.
+
## Initial Fix
@@ -112,7 +140,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