Any long-term plan related to GMP and Lightning?

45 views
Skip to first unread message

Juan Francisco Cantero Hurtado

unread,
Aug 14, 2015, 5:23:22 PM8/14/15
to racke...@googlegroups.com
Hi. I'm working in the OpenBSD/Sparc64 port of Racket. Hopefully, there
is only one remaining bug related to foreign/ffi. It was pretty easy.

I ran racket-benchmarks/shootout and it was amazingly slow, I gave up
after the first test and I cancelled the script. Racket's GMP code lacks
the Sparc64 assembler code, so I added it. I tried even to update the
GMP code during various days and it worked fine on
amd64/sparc64/linux-ppc64 but broke linux-armv7. Anyway, even with the
assembler code, the benchmarks were slow as hell. I guess that the
critical part of the good Racket performance on amd64/i386 is mostly the
JIT.

Don't take my words as criticism, I'm quite happy with Racket. It makes
easy my work as maintainer. It's an amazing project from a small team of
developers.

So, rants apart, my question is: there is a long-term plan to remove the
GMP/Lightning bundled code and to use directly the vanilla code from the
external projects?. That would improve the performance of Racket on
non-mainstream platforms and distros with non-bundled-libraries policy
(like Fedora/CentOS) could include Racket again. Lightning supports a
bunch of architectures.

Matthew Flatt

unread,
Aug 15, 2015, 8:38:08 AM8/15/15
to Juan Francisco Cantero Hurtado, racke...@googlegroups.com
I expect that we'll realign with the current Lightning eventually, but
I know of no plans in the near term.

GMP is not as straightforward. The slice of GMP that we use has been
modified to include cooperation points for Racket thread swaps, so that
a bignum calculation in one Racket thread doesn't block other Racket
threads. Due to those adjustments, plus the fact that we use such a
small part of GMP and it's such a small factor in performance for most
Racket applications, I don't really anticipate further work there.
> --
> You received this message because you are subscribed to the Google Groups
> "Racket Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to racket-dev+...@googlegroups.com.
> To post to this group, send email to racke...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/racket-dev/mqlm7m%24qe1%241%40ger.gmane.org.
> For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages