From e5e2c69fb342a4f69cd797fe1eed350716ca8582 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 24 Mar 2010 00:22:46 +0100 Subject: community/gsoc: Organization applications are over. --- community/gsoc.mdwn | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'community') diff --git a/community/gsoc.mdwn b/community/gsoc.mdwn index b8d843ff..ec4f2f62 100644 --- a/community/gsoc.mdwn +++ b/community/gsoc.mdwn @@ -13,9 +13,11 @@ is included in the section entitled # 2010 -We are again applying as an organisation this year. You can take a look at the -drafts for the [[organization_application]], the [[student_application_form]], -and the [[project_ideas]] list. +We haven't been accepted as a mentoring organization on our own, but will +participate under the umbrella of the GNU project. + +Students, have a look at our [[project ideas]] list and the [[student +application form]]. # History -- cgit v1.2.3 From 2da20dae9a6bd584e16022b54c24b2f4b2d8dc0f Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 24 Mar 2010 00:29:48 +0100 Subject: Restore broken link. --- community/gsoc.mdwn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'community') diff --git a/community/gsoc.mdwn b/community/gsoc.mdwn index ec4f2f62..f8eb522e 100644 --- a/community/gsoc.mdwn +++ b/community/gsoc.mdwn @@ -16,8 +16,8 @@ is included in the section entitled We haven't been accepted as a mentoring organization on our own, but will participate under the umbrella of the GNU project. -Students, have a look at our [[project ideas]] list and the [[student -application form]]. +Students, have a look at our [[project_ideas]] list and the +[[student_application_form]]. # History -- cgit v1.2.3 From 7a6e827ce999bb85120c8d0cd9d5f866130407e3 Mon Sep 17 00:00:00 2001 From: antrik Date: Fri, 26 Mar 2010 10:29:01 +0100 Subject: gsoc: rewrite section about current status --- community/gsoc.mdwn | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'community') diff --git a/community/gsoc.mdwn b/community/gsoc.mdwn index f8eb522e..57019437 100644 --- a/community/gsoc.mdwn +++ b/community/gsoc.mdwn @@ -13,12 +13,16 @@ is included in the section entitled # 2010 -We haven't been accepted as a mentoring organization on our own, but will -participate under the umbrella of the GNU project. - -Students, have a look at our [[project_ideas]] list and the -[[student_application_form]]. - +This year we are again participating in [Google Summer of Code](http://socghop.appspot.com) +under the [GNU umbrella](http://socghop.appspot.com/gsoc/org/show/google/gsoc2010/gnuproject). +Take a look at our [[project_ideas]] list. +If you are a student and want to apply for one of these tasks, +please mind the distinct [[student_application_form]] for the Hurd. + +Note that there are also two [Hurd-related ideas for X.Org](http://wiki.x.org/wiki/Hurd_Porting), +for which students should apply to [X.Org](http://socghop.appspot.com/gsoc/org/home/google/gsoc2010/xorg) as a mentoring organization; +and the [[project_ideas/debian_installer]] task +most likely will be handled by the [Debian organisation](http://socghop.appspot.com/gsoc/org/home/google/gsoc2010/debian). # History -- cgit v1.2.3 From c1d40111d84d727641e5e009b1613a4906981399 Mon Sep 17 00:00:00 2001 From: antrik Date: Fri, 26 Mar 2010 10:55:39 +0100 Subject: gsoc: move and rewrite "joining in" section The way it was, it just doesn't make sense while applications are still open... Also, frankly speaking, it sounded a bit silly :-) --- community/gsoc.mdwn | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'community') diff --git a/community/gsoc.mdwn b/community/gsoc.mdwn index 57019437..c8b8f6a6 100644 --- a/community/gsoc.mdwn +++ b/community/gsoc.mdwn @@ -24,6 +24,12 @@ for which students should apply to [X.Org](http://socghop.appspot.com/gsoc/org/h and the [[project_ideas/debian_installer]] task most likely will be handled by the [Debian organisation](http://socghop.appspot.com/gsoc/org/home/google/gsoc2010/debian). +If you can't participate as a GSoC student, +working on one of these projects is still a good opportunity to get started with Hurd development. +Please read up about [[contributing]] in general; +and feel free to ask any questions you might have at one of our [[regular_IRC_meetings|IRC#regular_meetings]]. +Generally it's a good idea to [[contact_us|communication]] when starting to work on some project. + # History In 2006 and [[2007]], we participated in GSoC under the umbrella of the GNU @@ -36,13 +42,3 @@ project. Read about our five students' success on the [[2008]] page. The next year, we participated under the GNU umbrella with one slot again. Read about it on the [[2009]] page. - - -# Joining in - -If these successes got you interested in contributing some larger part yourself - -in your free time or maybe in next years Google Summer of Code - -please have a look at our [[project_ideas]] and read up about [[contributing]]. - -Also, feel free to ask your questions at one of our -[[regular_IRC_meetings|IRC#regular_meetings]]. -- cgit v1.2.3 From ea9e81001100ebd3f7c00a7854e5d03f554fa919 Mon Sep 17 00:00:00 2001 From: antrik Date: Fri, 26 Mar 2010 20:29:01 +0100 Subject: gsoc/ideas/valgrind: Rewrite according to recent IRC discussion Note: I have doubts about the exercise task too... Probably needs revisiting. --- community/gsoc/project_ideas/valgrind.mdwn | 71 +++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 5 deletions(-) (limited to 'community') diff --git a/community/gsoc/project_ideas/valgrind.mdwn b/community/gsoc/project_ideas/valgrind.mdwn index 319d33a7..c6fc7459 100644 --- a/community/gsoc/project_ideas/valgrind.mdwn +++ b/community/gsoc/project_ideas/valgrind.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -8,12 +8,73 @@ Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] -[[!meta title="Porting valgrind to the Hurd"]] +[[!meta title="Porting Valgrind to the Hurd"]] -Valgrind is a very powerful tool to debunk bugs. However, in order to do so, it needs deep knowledge of the behavior of kernel traps. In the case of GNU/Hurd, there is a bunch of system calls that GNU Mach handles directly, but also all the MIG RPCs (Remote Procedure Calls) which return their result either inline or through memory allocated by the kernel. +[Valgrind](http://valgrind.org/) is an extremely useful debugging tool for memory errors. +(And some other kinds of hard-to-find errors too.) +Aside from being useful for program development in general, +a Hurd port will help finding out why certain programs segfault on the Hurd, +although they work on Linux. +Even more importantly, it will help finding bugs in the Hurd servers themselfs. -The goal is thus to teach valgrind the exact semantics of all MIG RPCs, most probably in an automatic way from the .defs files. +To keep track of memory use, +Valgrind however needs to know how each system call affects the validity of memory regions. +This knowledge is highly kernel-specific, +and thus Valgrind needs to be explicitely ported for every system. -As a starter, students can try to teach valgrind a couple of Linux ioctls, as this will make them learn how to use the read/write primitives of valgrind. +Such a port involves two major steps: +making Valgrind understand how kernel traps work in general on the system in question; +and how all the individual kernel calls affect memory. +The latter step is where most of the work is, +as the behaviour of each single system call needs to be described. + +Compared to Linux, +Mach (the microkernel used by the Hurd) has very few kernel traps. +Almost all system calls are implemented as RPCs instead -- +either handled by Mach itself, or by the various Hurd servers. +All RPCs use a pair of mach\_msg() invocations: +one to send a request message, and one to receive a reply. +However, while all RPCs use the same mach\_msg() trap, +the actual effect of the call varies greatly depending on which RPC is invoked -- +similar to the ioctl() call on Linux. +Each request thus must be handled individually. + +Unlike ioctl(), +the RPC invocations have explicit type information for the parameters though, +which can be retrieved from the message header. +By analyzing the parameters of the RPC reply message, +Valgrind can know exactly which memory regions are affected by that call, +even without specific knowledge of the RPC in question. +Thus implementing a general parser for the reply messages +will already give Valgrind a fairly good approximation of memory validity -- +without having to specify the exact semantic of each RPC by hand. + +While this should make Valgrind quite usable on the Hurd already, it's not perfect: +some RPCs might return a buffer that is only partially filled with valid data; +or some reply parameters might be optional, +and only contain valid data under certain conditions. +Such specific semantics can't be deduced from the message headers alone. +Thus for a complete port, +it will still be necessary to go through the list of all known RPCs, +and implement special handling in Valgrind for those RPCs that need it. + +The goal of this task is at minimum to make Valgrind grok Mach traps, +and to implement the generic RPC handler. +Ideally, specific handling for RPCs needing it should also be implemented. + +Completing this project will require digging into Valgrind's handling of system calls, +and into Hurd RPCs. +It is not an easy task, but a fairly predictable one -- +there shouldn't be any unexpected difficulties, +and no major design work is necessary. +It doesn't require any specific previous knowledge: +only good programming skills in general. +On the other hand, +the student will obtain a good understanding of Hurd RPCs while working on this task, +and thus perfect qualifications for Hurd development in general :-) Possible mentors: Samuel Thibault (youpi) + +Exercise: As a starter, +students can try to teach valgrind a couple of Linux ioctls, +as this will make them learn how to use the read/write primitives of valgrind. -- cgit v1.2.3 From f36cdb3cafb743de763ed217ef3260c12b15ab2d Mon Sep 17 00:00:00 2001 From: antrik Date: Sat, 27 Mar 2010 13:14:28 +0100 Subject: gsoc/ideas: grow a Python option to the former Perl task --- community/gsoc/project_ideas.mdwn | 2 +- community/gsoc/project_ideas/perl.mdwn | 30 ----------------------- community/gsoc/project_ideas/perl_python.mdwn | 34 +++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 31 deletions(-) delete mode 100644 community/gsoc/project_ideas/perl.mdwn create mode 100644 community/gsoc/project_ideas/perl_python.mdwn (limited to 'community') diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn index 2046db9e..c07e5def 100644 --- a/community/gsoc/project_ideas.mdwn +++ b/community/gsoc/project_ideas.mdwn @@ -101,7 +101,7 @@ See also the list of [Hurd-related X.org project ideas](http://wiki.x.org/wiki/H [[!inline pages="community/gsoc/project_ideas/gnat" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/hardware_libs" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/cdparanoia" show=0 feeds=no actions=yes]] -[[!inline pages="community/gsoc/project_ideas/perl" show=0 feeds=no actions=yes]] +[[!inline pages="community/gsoc/project_ideas/perl_python" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/libcap" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/xattr" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/valgrind" show=0 feeds=no actions=yes]] diff --git a/community/gsoc/project_ideas/perl.mdwn b/community/gsoc/project_ideas/perl.mdwn deleted file mode 100644 index bfe1968e..00000000 --- a/community/gsoc/project_ideas/perl.mdwn +++ /dev/null @@ -1,30 +0,0 @@ -[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]] - -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU Free Documentation License|/fdl]]."]]"""]] - -[[!meta title="Improving Perl Support"]] - -Perl is available on the Hurd, but there are quite a lot of test suite -failures. These could be caused by problems in the system-specific -implementation bits of Perl, and/or shortcomings in the actual system -functionality which Perl depends on. - -The goal of this project is to fix all of these problems if possible, or at -least some of them. Some issues might require digging quite deep into Hurd -internals, while others are probably easy to fix. - -Note that while some Perl knowledge is probably necessary to understand what -the test suite failures are about, the actual work necessary to fix these -issues is mostly C programming -- in the implementation of Perl and/or the -Hurd. - -Possible mentors: Samuel Thibault (youpi) - -Exercise: Make some improvement to Perl support on the Hurd, e.g. fixing one of -the known test suite failures. diff --git a/community/gsoc/project_ideas/perl_python.mdwn b/community/gsoc/project_ideas/perl_python.mdwn new file mode 100644 index 00000000..2ecfe106 --- /dev/null +++ b/community/gsoc/project_ideas/perl_python.mdwn @@ -0,0 +1,34 @@ +[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU Free Documentation License|/fdl]]."]]"""]] + +[[!meta title="Improving Perl or Python Support"]] + +Perl and Python are available on the Hurd, but there are quite a lot of test suite +failures. These could be caused by problems in the system-specific +implementation bits of Perl/Python, and/or shortcomings in the actual system +functionality which Perl/Python depends on. + +The student applying for this project can pick either Perl or Python, +whichever he is more comfortable with. +(Perl is higher priority though; and there are more failures too.) + +The goal then is to fix all of the problems with the chosen language if possible, or at +least some of them. Some issues might require digging quite deep into Hurd +internals, while others are probably easy to fix. + +Note that while some Perl/Python knowledge is probably necessary to understand what +the test suite failures are about, the actual work necessary to fix these +issues is mostly C programming -- in the implementation of Perl/Python and/or the +Hurd. + +Possible mentors: Samuel Thibault (youpi) + +Exercise: Make some improvement to Perl/Python support on the Hurd, e.g. fixing one of +the known test suite failures. -- cgit v1.2.3 From c676d817508dde90a301788f95799e1159d9978b Mon Sep 17 00:00:00 2001 From: antrik Date: Sat, 27 Mar 2010 17:31:56 +0100 Subject: gsoc: new idea: fixing testsuite failures --- community/gsoc/project_ideas.mdwn | 1 + community/gsoc/project_ideas/testsuites.mdwn | 52 ++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 community/gsoc/project_ideas/testsuites.mdwn (limited to 'community') diff --git a/community/gsoc/project_ideas.mdwn b/community/gsoc/project_ideas.mdwn index c07e5def..ca10c8a2 100644 --- a/community/gsoc/project_ideas.mdwn +++ b/community/gsoc/project_ideas.mdwn @@ -102,6 +102,7 @@ See also the list of [Hurd-related X.org project ideas](http://wiki.x.org/wiki/H [[!inline pages="community/gsoc/project_ideas/hardware_libs" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/cdparanoia" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/perl_python" show=0 feeds=no actions=yes]] +[[!inline pages="community/gsoc/project_ideas/testsuites" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/libcap" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/xattr" show=0 feeds=no actions=yes]] [[!inline pages="community/gsoc/project_ideas/valgrind" show=0 feeds=no actions=yes]] diff --git a/community/gsoc/project_ideas/testsuites.mdwn b/community/gsoc/project_ideas/testsuites.mdwn new file mode 100644 index 00000000..4f8d43fc --- /dev/null +++ b/community/gsoc/project_ideas/testsuites.mdwn @@ -0,0 +1,52 @@ +[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled +[[GNU Free Documentation License|/fdl]]."]]"""]] + +[[!meta title="Fix Compatibility Problems Exposed by Testsuites"]] + +A number of software packages come with extensive testsuites. +Some notable ones are Perl, Python, GNU Coreutils, and glib. +While these testsuites were written mostly to track regressions in the respective packages, +some of the tests fail on the Hurd in general. + +While in some cases these might point to wrong usage of system interfaces, +most of the time such failures are actually caused by shortcomings in Hurd's implementation of these interfaces. +These shortcomings are often not obvious in normal use, +but can be directly or indirectly responsible for all kinds of failures. +The testsuites help in isolating such problems, +so they can be tracked down and fixed. + +This task thus consists in running some of the mentioned testsuites +(and/or any other ones that come to mind), +and looking into the causes of failures. +The goal is to analyze all failures in one or more of the listed testsuites, +to find out what shortcomings in the Hurd implementation cause them (if any), +and to fix at least some of these shortcomings. + +Note that this task somewhat overlaps with the [[Perl/Python task|perl_python]] listed above. +Here the focus however is not on improving the support for any particular program, +but on fixing general problems in the Hurd. + +This is a very flexible task: +while less experienced students should be able to tackle at least a few of the easier problems, +other issues will be challenging even for experienced hackers. +No specific previous knowledge is required for this task; +only fairly decent C programming skills. +While tracking down the various issues, +the student will be digging into the inner workings of the Hurd, +and thus gradually gaining the knowledge required for Hurd development in general. + +Possible mentors: Samuel Thibault (youpi) + +Exercise: Take a stab at one of the testsuite failures, +and write a minimal testcase exposing the underlying problem. +Actually fixing it would be a bonus of course -- +but as it's hard to predict which issues will be easy and which will be tricky, +we will already be satisfied if the student makes a good effort. +(We hope to see some discussion of the problems in this case though :-) ) -- cgit v1.2.3 From 061ccb4858a2ac58af5663d0ff24bf6033427f19 Mon Sep 17 00:00:00 2001 From: antrik Date: Sat, 27 Mar 2010 17:46:10 +0100 Subject: gsoc/ideas/perl_python: borrow better exercise suggestion from testsuites idea --- community/gsoc/project_ideas/perl_python.mdwn | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'community') diff --git a/community/gsoc/project_ideas/perl_python.mdwn b/community/gsoc/project_ideas/perl_python.mdwn index 2ecfe106..34e877ab 100644 --- a/community/gsoc/project_ideas/perl_python.mdwn +++ b/community/gsoc/project_ideas/perl_python.mdwn @@ -30,5 +30,9 @@ Hurd. Possible mentors: Samuel Thibault (youpi) -Exercise: Make some improvement to Perl/Python support on the Hurd, e.g. fixing one of -the known test suite failures. +Exercise: Take a stab at one of the testsuite failures, +and write a minimal testcase exposing the underlying problem. +Actually fixing it would be a bonus of course -- +but as it's hard to predict which issues will be easy and which will be tricky, +we will already be satisfied if the student makes a good effort. +(We hope to see some discussion of the problems in this case though :-) ) -- cgit v1.2.3