From 2807e80880517fcbd15bea45dc65d9bb0ffe6989 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 16 Mar 2010 10:38:02 +0100 Subject: open_issues/git-core-2: Still seen. --- open_issues/git-core-2.mdwn | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/open_issues/git-core-2.mdwn b/open_issues/git-core-2.mdwn index 84e002b5..df38dc70 100644 --- a/open_issues/git-core-2.mdwn +++ b/open_issues/git-core-2.mdwn @@ -1,4 +1,5 @@ -[[!meta copyright="Copyright © 2008, 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2008, 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 @@ -48,3 +49,7 @@ Fixing this situation is easy enough: $ git status # On branch master nothing to commit (working directory clean) + +--- + +Still seen on 2010-03-16. -- cgit v1.2.3 From dbb800370d034f1e2b9ccfbf7a94ac8b91ccbe80 Mon Sep 17 00:00:00 2001 From: Carl Fredrik Hammar Date: Fri, 19 Mar 2010 16:12:39 +0100 Subject: Describe how to test QEMU user-network --- hurd/running/qemu.mdwn | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hurd/running/qemu.mdwn b/hurd/running/qemu.mdwn index b3346af1..6b9062e9 100644 --- a/hurd/running/qemu.mdwn +++ b/hurd/running/qemu.mdwn @@ -108,6 +108,11 @@ If you just want to access the internet from within QEMU, you can setup pfinet f (See also .) Outgoing internet connections should just work then. +Testing it can be difficult with a minimal installation, +but `apt-get update` should work after you have filled out +`/etc/apt/sources.list`. +After that you should be able to install other network packages, +but note that `ping` doesn't work with QEMU's user-networking stack. If you want to connect from the host system to the Hurd system running in QEMU, you need to setup something more advanced, like bridged networking. -- cgit v1.2.3 From e2628fc0173d54e8e6c1d62c90940d789c24c87e Mon Sep 17 00:00:00 2001 From: pino Date: Sun, 21 Mar 2010 01:26:41 +0000 Subject: add section about not using hardcoded errno values --- hurd/porting/guidelines.mdwn | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/hurd/porting/guidelines.mdwn b/hurd/porting/guidelines.mdwn index bcfc8dd5..8dd27a52 100644 --- a/hurd/porting/guidelines.mdwn +++ b/hurd/porting/guidelines.mdwn @@ -232,3 +232,40 @@ Not implemented, not POSIX. Try to disable the feature in the package. ## There is no programming interface for the parallel port on GNU/Hurd yet. + +## `errno` values + +When dealing with `errno`, you should always use the predefined error codes defined with the `E*` constants, instead of manually comparing/assigning/etc with their values. + +For example (C/C++): + + /* check whether it does not exist */ + if (errno == 2) + ... + +or Python: + + # check whether it does not exist + try: + ... + except OSError, err: + err.errno == 2: + ... + +This is wrong, as [the actual values of the `E*` are unspecified (per POSIX)](http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_03.html#tag_02_03). You must always use the predefined constants for the possible errors. + +For example (C/C++): + + /* check whether it does not exist */ + if (errno == ENOENT) + ... + +With Python, you can use the [`errno` module](http://docs.python.org/library/errno.html) for the various constants: + + # check whether it does not exist + try: + ... + except OSError, err: + import errno + err.errno == errno.ENOENT: + ... -- cgit v1.2.3 From be974ed77c96eda0d1391d95c56726e1844f1a9d Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 24 Mar 2010 00:06:32 +0100 Subject: public_hurd_boxen/installation: install_crosshurd now in the incubator. --- public_hurd_boxen/installation.mdwn | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/public_hurd_boxen/installation.mdwn b/public_hurd_boxen/installation.mdwn index 90dbba6d..ca74a4c6 100644 --- a/public_hurd_boxen/installation.mdwn +++ b/public_hurd_boxen/installation.mdwn @@ -11,13 +11,16 @@ License|/fdl]]."]]"""]] This page documents how installation of a new machine is being done on [[zenhost]]. +This method uses +*[install_crosshurd](http://git.savannah.gnu.org/cgit/hurd/incubator.git/log/?h=install_crosshurd)*. + * Enable loggin with screen (`C-a H`). * \# lvcreate ... - * ~tschwinge/machines/[MACHINE] + * machines/[MACHINE] - * \# MACHINE=[MACHINE] TARGET=/dev/zenhost/[MACHINE]-root ~tschwinge/install_crosshurd + * \# MACHINE=[MACHINE] TARGET=/dev/zenhost/[MACHINE]-root ./install_crosshurd * TODO @@ -29,10 +32,7 @@ This page documents how installation of a new machine is being done on Ignore? -- - * Check that `/tmp/crosshurd.[MACHINE]/etc/hosts` has been created correctly. - - * \# sudo umount /tmp/crosshurd.[MACHINE] - \# sudo rmdir /tmp/crosshurd.[MACHINE] + * \# sudo umount /tmp/*/target * /etc/xen/[MACHINE] -- cgit v1.2.3 From 5b1ea61bce1cdd153b4d85f7c3c3c53d4370704d Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 24 Mar 2010 00:07:05 +0100 Subject: source_repositories/glibc: Begin collecting some TopGit receipes. --- source_repositories/glibc.mdwn | 75 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/source_repositories/glibc.mdwn b/source_repositories/glibc.mdwn index 5530980e..fabd7cab 100644 --- a/source_repositories/glibc.mdwn +++ b/source_repositories/glibc.mdwn @@ -16,3 +16,78 @@ This repository uses [[TopGit]]. *A plan for the Hurd-specific glibc repository*, thread [begins](http://lists.gnu.org/archive/html/bug-hurd/2010-01/msg00062.html), [continues](http://lists.gnu.org/archive/html/bug-hurd/2010-02/msg00021.html). + + +# Usage + +## Clone + + $ git init + $ git remote add savannah git://git.sv.gnu.org/hurd/glibc.git + $ git remote update + $ tg remote --populate savannah + tg: Remote savannah can now follow TopGit topic branches. + tg: Populating local topic branches from remote 'savannah'... + From git://git.sv.gnu.org/hurd/glibc + * [new branch] refs/top-bases/t/_dl_random -> savannah/top-bases/t/_dl_random + * [new branch] refs/top-bases/t/accept4 -> savannah/top-bases/t/accept4 + [...] + * [new branch] refs/top-bases/tschwinge/Roger_Whittaker -> savannah/top-bases/tschwinge/Roger_Whittaker + tg: Adding branch t/_dl_random... + tg: Adding branch t/accept4... + [...] + tg: Adding branch tschwinge/Roger_Whittaker... + tg: The remote 'savannah' is now the default source of topic branches. + +## Use tschwinge's Working Branch + + $ git checkout tschwinge/Roger_Whittaker + +## Integrate a New Branch + +A new (TopGit) branch has been published upstream: + + $ tg remote --populate savannah + tg: Remote savannah can now follow TopGit topic branches. + tg: Populating local topic branches from remote 'savannah'... + remote: Counting objects: 28, done. + remote: Compressing objects: 100% (19/19), done. + remote: Total 20 (delta 13), reused 1 (delta 0) + Unpacking objects: 100% (20/20), done. + From git://git.sv.gnu.org/hurd/glibc + * [new branch] t/unwind-resume.c -> savannah/t/unwind-resume.c + * [new branch] refs/top-bases/t/unwind-resume.c -> savannah/top-bases/t/unwind-resume.c + tg: Skipping branch t/____longjmp_chk: Already exists + [...] + tg: Skipping branch t/tlsdesc.sym: Already exists + tg: Adding branch t/unwind-resume.c... + tg: Skipping branch t/verify.h: Already exists + tg: Skipping branch tschwinge/Roger_Whittaker: Already exists + tg: The remote 'savannah' is now the default source of topic branches. + +Make `tschwinge/Roger_Whittaker` (the current branch) depend on it: + + $ tg depend add t/unwind-resume.c + [tschwinge/Roger_Whittaker 63f11ff] New TopGit dependency: t/unwind-resume.c + 1 files changed, 1 insertions(+), 0 deletions(-) + tg: Updating base with t/unwind-resume.c changes... + Auto-merging .topdeps + Auto-merging .topmsg + Merge made by recursive. + nptl/sysdeps/pthread/Makefile | 12 ++---------- + sysdeps/gnu/Makefile | 18 ++++++++++++++++-- + .../pthread => sysdeps/gnu}/rt-unwind-resume.c | 0 + .../pthread => sysdeps/gnu}/unwind-resume.c | 4 ++-- + 4 files changed, 20 insertions(+), 14 deletions(-) + rename {nptl/sysdeps/pthread => sysdeps/gnu}/rt-unwind-resume.c (100%) + rename {nptl/sysdeps/pthread => sysdeps/gnu}/unwind-resume.c (93%) + tg: The tschwinge/Roger_Whittaker head is up-to-date wrt. its remote branch. + tg: Updating tschwinge/Roger_Whittaker against new base... + Merge made by recursive. + nptl/sysdeps/pthread/Makefile | 12 ++---------- + sysdeps/gnu/Makefile | 18 ++++++++++++++++-- + .../pthread => sysdeps/gnu}/rt-unwind-resume.c | 0 + .../pthread => sysdeps/gnu}/unwind-resume.c | 4 ++-- + 4 files changed, 20 insertions(+), 14 deletions(-) + rename {nptl/sysdeps/pthread => sysdeps/gnu}/rt-unwind-resume.c (100%) + rename {nptl/sysdeps/pthread => sysdeps/gnu}/unwind-resume.c (93%) -- cgit v1.2.3 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(-) 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 4c4628943da0b346a61878880e04857d3cdc77e6 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 24 Mar 2010 00:25:56 +0100 Subject: index: Breaking News for the GSoC. --- index.mdwn | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/index.mdwn b/index.mdwn index 9af10089..fa7a3af1 100644 --- a/index.mdwn +++ b/index.mdwn @@ -1,5 +1,5 @@ [[!meta copyright="Copyright © 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -2009 Free Software Foundation, Inc."]] +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 @@ -31,6 +31,12 @@ computing environment as possible. --- +[[!template id=note text="""**Breaking News** + +The *[[Google Summer of Code|community/gsoc]]* is on! If you're a student, +consider applying for a GNU/Hurd project."""]] + + [[!toc]] -- 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(-) 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(-) 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(-) 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(-) 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 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 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(-) 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