On 11/16/2012 02:10 PM, mfl...@racket-lang.org wrote:
9a48e5d Matthew Flatt<mfl...@racket-lang.org>  2012-11-16 14:03
:
| math: avoid import at unnecessary phase
|
| This repair avoids using at compile time external libraries that
| are needed at run time.
:
   M collects/math/private/matrix/matrix-sequences.rkt | 4 +---
>
> [...]
>
collects/math/private/matrix/matrix-sequences.rkt
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--- OLD/collects/math/private/matrix/matrix-sequences.rkt
+++ NEW/collects/math/private/matrix/matrix-sequences.rkt
@@ -5,9 +5,7 @@
           in-column)

  (require math/array
-         (except-in math/matrix in-row in-column)
-         (for-syntax (except-in math/matrix in-row in-column))
-         (for-template (except-in math/matrix in-row in-column)))
+         (except-in math/matrix in-row in-column))

Was this the only necessary change? If so, it's a little weird, because libmpfr isn't supposed to be loaded until its first export is used. The constants are all delayed (their names are bound to macros that expand to uses of `force'), and every function and delay thunk is wrapped with code that loads the external library. IOW, this:

  (require math/bigfloat)

doesn't load libmpfr, but this does:

  pi.bf

Also, I have no idea what it all has to do with a typed submodule in "math/special-functions.rkt", which is apparently what the error was complaining about. I can't work out the dependency chain. Help?

(FWIW, you're right about libmpfr not being needed at compile time. Well, it shouldn't be. I used Eli's nifty interaction-fakery code forms in the `math/bigfloat' docs, for example.)

Neil ⊥
_________________________
 Racket Developers list:
 http://lists.racket-lang.org/dev

Reply via email to