At Sat, 29 Dec 2012 14:05:08 +0300, Michael Filonenko wrote: > I have prepared a new version of the patch (attached).
Thanks! I've merged your patch into the git repo, with some changes: * Abstracted more to both reduce code duplication and make the "product line" variation easier to read and write. * Renamed a few operations to consistently use "extfl", and added `extfl->inexact' and `extfl-available?'. * Changed the module organization, so that the extflonum bindings are always available, and operations raise `exn:fail:unsupported' when they are not supported. The operations `extflonum?', `extflvector?', and `extflonum-available?' always work. * Adjusted the reader to more completely isolate extflonums (e.g., no complex numbers with an extflonum part). * Changed "sconfig.h" and "scheme.h" to infer when extflonums can be supported (see also the new note in "src/README"), and added `--disable-extflonum' to `configure'. * Reorganized and expanded the documentation. I ran out of steam before trying a MinGW compile, so that's almost certainly broken. Meanwhile, I have some thoughts on making an MSVC build work with a MinGW-compiled support DLL (more later). Unboxing of locally-bound extflonums is still not implemented, but I think it's probably not too far away. If you want to give that a try, I recommend continuing in the direction of threading an `extfl' flag through the JIT, instead of duplicating functions. Finally, I think the test suite probably needs a lot more tests to cover the extflonum operations. Most of the flonum tests are in "optimize.rktl", and I think it would make sense to add similar tests there for extflonum operations --- guarded by `(when (extflonum-available?) ...)'. _________________________ Racket Developers list: http://lists.racket-lang.org/dev