[tug-summer-of-code] Project idea: Implement TLP.pm in C

Jjgod Jiang gzjjgod at gmail.com
Tue Mar 18 11:15:00 CET 2008


Hi all,

Here is one of my ideas for GSoC 2008.

At present, we only have one implementation of the new TeXLive
package management system, which is written in Perl [1]. I once
expressed my hope to reimplement this in C with Norbert privately,
and started a basic structure of that implementation [2]. But due
to lack of time, the progress is not as much as I expected. Now,
I think it's worth to take a serious look at this project, and
hear more comments and requests from you.

First of all, I started this project because I hope:

1. It can give a solid foundation to build bindings in other
languages, especially scripting languages like Python and Ruby
(I know we already have a basic Python implementation, but the
main reason to support a C implementation is they can all based
on the same foundation and have exact behavior on package
management, so that you won't need to spend too much time to
keep all these implementations in sync.)

2. It can serve as the base of native GUI frontends. Although
there are some Perl bindings for various GUI Toolkit, C still
has the best compatibilities with all native GUI frameworks on
all platforms: it's fully compatible with GTK+, Qt, Win32 API,
MFC, Objective-C/Cocoa, C/Carbon. IMHO, to have a native, good
looking GUI frondend for each platform can make TeX Live more
friendly to normal users, especially non-CS-majored users.

3. It will performance better than any other implementations.
We can optimize more carefully and more easily in C for a lot
of non-trivial usage, like package syncing, full-text searching,
dependency calculation.. and so on. We can also learn a lot
from popular package management systems like APT [3], Pacman [4].
IMHO, most well received package management systems are
implemented in C/C++, those who implemented with scripting
languages are often complained by users because they are too
slow for certain purposes.

Because of all these reasons, I think I can take the chance of
GSoC 2008, work for a relatively large amount of time to create
such a implementation. Hopefully I can come up with a beta
release in June, in companion with TeX Live 2008, and have the
stable version included in TeX Live 2009.

What do you think of this plan? It's just a draft, feel free to
comment on this! Thanks.

BTW: just to be clear, I worked on projects like this only to
provide a better solution for my personal usage and help other
people with similar requirements, even this idea is not chosen
to be sponsored in GSoC 2008, I will still continue my work
sooner or later. And I sincerely welcome all other students
interested in it to join and cooperate with me, that will be
fun.

- Jiang

[1]: http://www.tug.org/svn/texlive/trunk/Master/tlpkg/TeXLive/ 
[2]: http://www.tug.org/svn/texlive/trunk/Master/tlpkg/lib/C/
[3]: http://www.debian.org/doc/manuals/apt-howto
[4]: http://www.archlinux.org/pacman


More information about the summer-of-code mailing list