Re: Rational sequence

On Tue, Oct 22, 2002 at 01:52:01PM +0100, Alastair Reid wrote:
Once the release is out the door and things settle down a bit (both in Hugs and in my personal life), I'd like to cleanup the Hugs' internals which have gotten quite confused by layer upon layer of backward compatability code. Practical benefits I hope for are:
- Make Float mean 'C float' and Double mean 'C double'. Most of the code is actually in Hugs already but it was disabled because of some long-irrelevant issue involving the foreign function interface.
Does this mean that we can safely enable USE_DOUBLE_PRECISION now? If so, I think we should do it for this release. Obviously the best thing would be Float = float, Double = double, but I think most people would prefer Float = Double = double to Float = Double = float.

Does this mean that we can safely enable USE_DOUBLE_PRECISION now?
Maybe. It's so long since this was routinely used that bitrot has probably set in. It and our regression checks are probably good enough that, once it compiles and passes checks again (assuming it currently fails a few), I'd happily recommend it to people living within sight of the bleeding edge. I'm less confident that it's good enough for all those people using Hugs for teaching. I favour waiting until after the release and then making all the things we want but aren't confident enough about be the default behaviour so that anyone using the CVS will be testing it all the time and then doing another release in 4-6 months with much cleanup. -- Alastair

Does this mean that we can safely enable USE_DOUBLE_PRECISION now?
btw configure.in says: dnl Disabled for now because the plugin-code can't handle the change. dnl If you're not using plugins, you could turn this on manually dnl by setting "USE_DOUBLE_PRECISION" in options.h.in (before running dnl the configure script). dnl AC_ARG_ENABLE(double-precision, [ --enable-double-precision use double precision arithmetic], AC_DEFINE(USE_DOUBLE_PRECISION)) I don't remember exactly what I meant by this comment but plugins is the word we used to describe dynamically linked code. One kind of dynamically linked code was primitive declarations (see src/plugin.c). This later grew into GreenCard1, GreenCard2 and, now, the foreign function interface. The foreign function interface code has all been rewritten and improved a lot since it was first written so it should be cool. I think we also used 'plugin' to refer to use of Hugs to write 'plugins' for things like web browsers via the Hugs_Server interface (src/server.c). AFAIK, that code hasn't received the attention that the ffi has received so I'm less confident that it can cope smoothly with a switch. (But others have hacked on that code more recently than I - perhaps with the intention of removing broken assumptions.) I'm not saying that either has problems - just indicating areas where we need to check that the testsuite is thorough enough to catch any problems that might be there. -- Alastair
participants (2)
-
Alastair Reid
-
Ross Paterson