Gnumeric’s solver was broken in HEAD and while fixing it, I
updated to the latest version of lp_solve.
Let me tell you, lp_solve is a prime example of how not to make
a library! It looks like there used to be a program and that it
was made into a library by removing main
.
There is no concept of namespaces there. When you include the
relevant header file, you get everything used anywhere internally:
EQ
, gcd
, MALLOC
, TRUE
, is_int
, and about 400-600
other identifiers.
You cannot isolate that problem to just where you use the header,
by the way, as static
is practically usused.
I decided to throw a perl script at the problem and combine everything into one
gaint C file. All 44186 lines of it after pruning about 5000 lines.
The script adds tons of static
s in the process,
renames the relevant part of the API, and extracts
that API. Extra points for you if you can read the perl script
without losing your breakfast.