summaryrefslogtreecommitdiff
path: root/community/gsoc/project_ideas/lexical_dot-dot.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'community/gsoc/project_ideas/lexical_dot-dot.mdwn')
-rw-r--r--community/gsoc/project_ideas/lexical_dot-dot.mdwn40
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.