FAQ: General Questions
- I have an Unanswered Question
- Why not fix Portage?
- Why C++?
- But C++ is ...
- Contributing
- Known compiler issues
- What term should I use to mean "to install a package using Paludis"?
I have an Unanswered Question
If you've checked the documentation, and your question really isn't answered, you should ask it in one of these places:
- The
#paludis
channel onirc.freenode.net
- The paludis-user mailing list
- The bug tracker will probably also be useful
You are encouraged to submit an entry for this document once your question has been answered.
Why not fix Portage?
The Portage codebase is too broken to be fixed. It is a huge mess of spaghetti procedural code with no underlying design. It relies upon weird quirks in its own behaviour all over the place, so any change is liable to cause huge breakage in seemingly unrelated areas. It is almost entirely undocumented, and the internal names are perverse and often do not reflect what the code now does.
Why C++?
Because we don't have the time or the manpower to write it in C.
But C++ is ...
No it isn't. Whoever told you that was either trolling or ignorant.
Contributing
Contributions to Paludis are welcome:
- Patches can be submitted via trac. It's best to discuss ideas before spending too much time on the code, because we don't have any qualms about rejecting things we think are a bad idea.
- We could probably use some more documentation. Again, ask first.
- Translations aren't currently possible. We don't have anything against internationalisation in principle, but as we're not gettextised it'll be a fair bit of effort.
- Donate to the hosting fund, using this button:
Known compiler issues
The primary supported compiler for building Paludis is GCC, version 4.1 or later. Some versions of GCC, and some compiler flags, are known to have problems (these are all GCC's fault):
- GCC 4.1.1 segfaults while building Paludis.
- GCC 4.2.2 fails with an internal error while building Paludis
if the
-g
compiler flag is used. - GCC 4.2.2 has been known to miscompile Paludis on the 64-bit PowerPC architecture.
- The
-O3
compiler flag causes linker errors when building some versions of Paludis (note that the Gentoo and paludis-overlay ebuilds remove this flag automatically). - The
-Os
compiler flag has been known to cause GCC to miscompile Paludis at least on x86_64, and possibly others (note that the Gentoo and paludis-overlay ebuilds remove this flag automatically). - The
-O0
flag (or equivalently, absense of any-O
x flag) has been known to cause GCC to miscompile Paludis in the past at least on x86_64.
Recent (version 10.1) ICC will sometimes work. 10.1.008 has correctly compiled Paludis
on x86_64, but only with most compiler optimisations disabled. With -xT
(and
probably others) the compiler will die with an internal error or a floating point
exception; even without any non-standard optimisations turned on, ICC produces
code that is measurably faster than GCC.
What term should I use to mean "to install a package using Paludis"?
"Install".