diff options
Diffstat (limited to 'community/gsoc/project_ideas/lexical_dot-dot.mdwn')
-rw-r--r-- | community/gsoc/project_ideas/lexical_dot-dot.mdwn | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/community/gsoc/project_ideas/lexical_dot-dot.mdwn b/community/gsoc/project_ideas/lexical_dot-dot.mdwn new file mode 100644 index 00000000..e0dabc01 --- /dev/null +++ b/community/gsoc/project_ideas/lexical_dot-dot.mdwn @@ -0,0 +1,40 @@ +[[!meta copyright="Copyright © 2008, 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="Lexical .. Resolution"]] + +For historical reasons, [[UNIX]] filesystems have a real (hard) `..` link from each +directory pointing to its parent. However, this is problematic, because the +meaning of "parent" really depends on context. If you have a symlink for +example, you can reach a certain node in the filesystem by a different path. If +you go to `..` from there, UNIX will traditionally take you to the hard-coded +parent node -- but this is usually not what you want. Usually you want to go +back to the logical parent from which you came. That is called "lexical" +resolution. + +Some application already use lexical resolution internally for that reason. It +is generally agreed that many problems could be avoided if the standard +filesystem lookup calls used lexical resolution as well. The compatibility +problems probably would be negligible. + +The goal of this project is to modify the filename lookup mechanism in the Hurd +to use lexical resolution, and to check that the system is still fully +functional afterwards. This task requires understanding the filename resolution +mechanism. + +See also [[!GNU_Savannah_bug 17133]]. + +Possible mentors: Carl Fredrik Hammar (cfhammar) + +Exercise: This project requires changes to the name lookup mechanism in the +Hurd-related glibc parts, as well as the Hurd servers. Thus, the exercise task +should involve hacking glibc or Hurd servers, or even both. Fixing the bug in +the client-side nfs translator (/hurd/nfs) that makes "rmdir foo/" fail while +"rmdir foo" works, seems a good candidate. |