[MacPorts] SummerOfCode modified

MacPorts noreply at macports.org
Tue Jan 30 07:22:19 UTC 2018


Page "SummerOfCode" was changed by umeshksingla
Diff URL: <https://trac.macports.org/wiki/SummerOfCode?action=diff&version=294>
Revision 294
Comment: moving trace optimization project up
Changes:
-------8<------8<------8<------8<------8<------8<------8<------8<--------
Index: SummerOfCode
=========================================================================
--- SummerOfCode (version: 293)
+++ SummerOfCode (version: 294)
@@ -150,6 +150,26 @@
 * Languages: Tcl, C
 * Contact: raimue, l2dy
 
+==== Speed up trace mode ==== #tracemode
+
+Trace mode is a library preloading-based sandbox used to hide files that a port does not depend on or that are not part of a standard system's installation (such as `/usr/local`). This can avoid problems due to incompatible user-installed software and avoid "automagic" dependencies and increase the reproducibility of builds.
+
+Unfortunately, enabling trace mode adds a significant performance penalty to the build process. However, the trace mode code can certainly be optimized using appropriate cache data structures, such as a modified [http://en.wikipedia.org/wiki/Trie Trie]. Your task would be to identify the performance bottlenecks, draft appropriate caching data structures and implement them.
+
+* Difficulty: Medium to Hard
+* Programming languages: Tcl, C
+* Potential mentors: cal
+
+==== Auto-detection of build dependencies ==== #dependencies-gen
+
+When creating a new portfile one of the problems is always the specification of the complete (and preferably minimal) list of build dependencies, especially when one starts with a complete install where most dependencies are already available.
+
+It is possible to invert the trace mode logic so that it detects all files a configure and/or build process accesses, in ${prefix} but outside of the port's build directory. This information can then be used to generate a dependency tree and information from the registry can then be used to simplify that tree so that it only lists direct dependencies. Can be combined with the above project. Consult mentor.
+
+* Difficulty: Medium to Easy
+* Programming languages: Tcl, C
+* Potential mentors: cal
+
 ==== Improve startupitem code ==== #startupitem
 
 MacPorts has the ability to automatically generate startup items for the current platform. For OS X, these are plist files for launchd which will be installed as `/Library/LaunchDaemons/org.macports.*.plist`. The current code would need a little care and could make use of options which have been added in recent releases of launchd.
@@ -166,26 +186,6 @@
 * Languages: Tcl, C
 * Potential mentors: larryv, pixilla
 
-==== Speed up trace mode ==== #tracemode
-
-Trace mode is a library preloading-based sandbox used to hide files that a port does not depend on or that are not part of a standard system's installation (such as `/usr/local`). This can avoid problems due to incompatible user-installed software and avoid "automagic" dependencies and increase the reproducibility of builds.
-
-Unfortunately, enabling trace mode adds a significant performance penalty to the build process. However, the trace mode code can certainly be optimized using appropriate cache data structures, such as a modified [http://en.wikipedia.org/wiki/Trie Trie]. Your task would be to identify the performance bottlenecks, draft appropriate caching data structures and implement them.
-
-* Difficulty: Medium to Hard
-* Programming languages: Tcl, C
-* Potential mentors: cal
-
-==== Auto-detection of build dependencies ==== #dependencies-gen
-
-When creating a new portfile one of the problems is always the specification of the complete (and preferably minimal) list of build dependencies, especially when one starts with a complete install where most dependencies are already available.
-
-It is possible to invert the trace mode logic so that it detects all files a configure and/or build process accesses, in ${prefix} but outside of the port's build directory. This information can then be used to generate a dependency tree and information from the registry can then be used to simplify that tree so that it only lists direct dependencies. Can be combined with the above project. Consult mentor.
-
-* Difficulty: Medium to Easy
-* Programming languages: Tcl, C
-* Potential mentors: cal
-
 ==== Improve fetching from version control ==== #fetchtypes
 
 Make cvs/svn/git/hg/bzr fetch types checkout into the distfiles dir and then export into the work dir, to [[ticket:16373|avoid having to re-fetch]] after cleaning the work directory. 
-------8<------8<------8<------8<------8<------8<------8<------8<--------

--
Page URL: <https://trac.macports.org/wiki/SummerOfCode>
MacPorts <https://www.macports.org/>
Ports system for macOS

This is an automated message. Someone added your email address to be
notified of changes on 'SummerOfCode' page.
If it was not you, please report to admin at macports.org.


More information about the macports-changes mailing list