Skip to content

Commit

Permalink
update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Luiz de Milon authored and rofl0r committed Mar 19, 2016
1 parent 70cc903 commit b9e152c
Showing 1 changed file with 11 additions and 11 deletions.
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,23 +30,25 @@ Why do we need an ncurses replacement ?
code:
- extremely complicated build process with several layers of preprocessing
using tools like awk, sed and the output of the C preprocessor with reliance
on implementation details, as shown by the recent breakage when distros
updated to GCC 5 [0].
on implementation details, [as shown by the recent breakage when distros
updated to GCC 5][0].
- heavy use of macros, making the code hard to read.
- very much code (bloat).
- Usability.
the default configuration of ncurses is usually not what one wants, and it
features several dozens of configure options to customize the build,
for example making it split up in several smaller libraries, with or without
widechar support, etc.

this makes it hard to guess which files to link against and which headers to
use when building a package against ncurses.
-lncurses ? -lncursesw -lterminfo -ltic ? curses.h ? ncurses/ncursesw.h ?
this filename chaos is often fixed in a distro-specific manner [1].
`-lncurses`? `-lncursesw -lterminfo -ltic`? `curses.h`? `ncurses/ncursesw.h`?
this filename chaos [is often fixed in a distro-specific manner][1].

to accomodate for this, ncurses ships its own config tool ncurses(w)5-config
instead of a standardized pkg-config description file (disabled by default)
to query the necessary CFLAGS and LDFLAGS.
unfortunately like every other homebrewn pkg-config replacement, this config
unfortunately like every other homebrewed pkg-config replacement, this config
utility was designed without cross-compilation in mind, so almost any package
using ncurses and autoconf fails to cross-compile when unpatched.
- Size and build time.
Expand Down Expand Up @@ -85,14 +87,9 @@ TODO
- installation of global terminfo db
(rather than just a small built-in, handpicked set)

References
----------
[0] http://trac.sagemath.org/ticket/18301
[1] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/scripts/kconfig/lxdialog/check-lxdialog.sh

APPENDIX A: Test Setup used for comparison in Table 1
-----------------------------------------------------
all test done on a dual core x86_64 sabotage linux system, with the following
All tests were done on a dual core x86_64 sabotage linux system, with the following
features:
installation of shared and static libs, headers, etc,
i.e. make -j2 all install.
Expand All @@ -110,3 +107,6 @@ netbsd curses was installed without manpages (ncurses: 1.1 MB) and terminfo
database (ncurses: 6.4MB).
the debug info build was created with -g3 and debuginfo stripped into external
files via objcopy.

[0]:http://trac.sagemath.org/ticket/18301
[1]:https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/log/scripts/kconfig/lxdialog/check-lxdialog.sh

0 comments on commit b9e152c

Please sign in to comment.