From: Arthur N. <ac...@ca...> - 2023-06-01 16:26:01
|
All your questions are sensible, but the answers are more delicate. In generate the source code for libraries is there for reasons where which is more important may differ case by case: (1) I tend to be maybe extra cautious about license terms, so in some cases the sources of LGPL code is included so one can be really certain that people can build - for instance historically not everything is automatically present with an OS standard distribution. So putting the source code there felt "safe" as well as giving full credit to its author. (2) It may be that now "every worthwhile" environment comes with a package manager that provides all those. Across the lifetime of Reduce that has not been the case. And so for any ONE particular OS some may be irrelevant if one wants maximum portability including to fairly archic or odd targets merely deleting a package would hurt. With limited available bandwidth I do not often look back to see what can now be purged... maybe some could! (3) I wanted to customise FOX but the license terms mean that I have to adhere to LGPL and so the source of my adjusted version has to be available. For editline I am not aware of a single version that works happily on both Linux and Windows so there are 2 versions - for that and several other packages the build scripts I wanted were not as per the ones provided. Eg for libffi I want to make "universal" code for use of the arm-based macs and that involved trickery. Crlibm is not somewhat orphaned but the later work of the people who built it did not seem to be usable for my purposes. I know that at present I use an out of date softfloat but when I looked to bump the version that was going to take me more time than I had when I looked at it. So if you have a system-provided libffi and editline or crlibm and probably softfloat they may work. My adjustments to FOX are more dramatic. There are not liable to be performance issues. It would be imaginable for each to have a configure-time option such as --with-system-libffi possibly even making that default to true if a system version was available. Please join in and propose changes to configure.ac and Makefile.am to activate that idea! For me it would look like and extra number of hours in my life used up and (worse) a fresh set of potential variations in how things got built to need to support when future library updates introduce incompatibility! So when you just look at Guix I agree that using the Guix-provided versions where you can would be great. I hope you can see how I am personally less enthusiastic about working towards it! But as I say, if you can hack configure.ac/Makefile.am in a nice way to provide options to use system versions I would be rather happy and could review what you end up with and check it in... Arthur On Thu, 1 Jun 2023, Andrey Ignatenko wrote: > Hello, > > I am building REDUCE from source code in GNU Guix operation system/package > manager. Currently I have written a package definition which builds CSL > version of REDUCE with FOX GUI successfully, at least on my laptop with Intel > x86_64 architecture. Now I have realized that REDUCE source code contains a > few bundled libraries, such as fox, editline, crlibm, softfloat, etc. Since > GNU Guix packaging guidelines recommend to package such libraries separately, > here I have the following questions. > > 1. As far as I understand some of these libraries are customized/modified > versions of the original ones. Is it possible to compile REDUCE with original > versions of these libraries as external dependencies without impact on > performance? > > 2. Which of these bundled libraries can be easily replaced with their > external counterparts? > > 3. What modifications to the build scripts should be made to compile with > external libraries? > > Thank you. > > > Best Regards, > Andrey Ignatenko > > > _______________________________________________ > Reduce-algebra-developers mailing list > Red...@li... > https://lists.sourceforge.net/lists/listinfo/reduce-algebra-developers > |