The Racket repository
Go to file
Matthew Flatt f3dd113e9d cs: rumble layer tweaks inspired by investigations of random
The main (slightly) effective change here is to avoid disturbing loop
patterns within the Rumble layer's implementation.

Most of the commit is a commented out, updated version of the Scheme
implementation of MRG32k3a `random`. With the latest improvements for
unboxed floating-point arithmetic, performance is relatively good, but
it doesn't catch up to the C compiler's output. On an x86_64 MacBook
(i7 4870HQ) using LLVM or a Raspberry Pi 3 using GCC, it's about 50%
slower compared to C (in contrast to 300% slower before unboxing).
It's almost the same speed on a older x86_64 Linux machine (i7 2600)
using GCC. Where the C compiler wins, maybe it's due to the use of
SIMD instructions in the C output for x86_64 and Arm32. Switching to
the Scheme implementation of `random` would probably be fine, but
aisde from the satisfaction of being in Scheme, there's no reason to
pay the sometimes 50% penalty for now.
2020-06-16 17:03:40 -06:00
.github Consolidate current racket-ci images into a single one (#3230) 2020-06-03 18:34:20 +02:00
pkgs correct n->th 2020-06-15 15:01:58 -05:00
racket cs: rumble layer tweaks inspired by investigations of random 2020-06-16 17:03:40 -06:00
.gitattributes Don't include git files in archives. 2010-05-12 01:46:05 -04:00
.gitignore Fix typo. 2019-06-21 12:32:37 -05:00
.lgtm.yml Add initial LGTM configuration for Racket (#3200) 2020-05-22 08:30:47 +02:00
.mailmap Minor metadata changes. 2019-10-15 08:09:32 -04:00
build.md makefile: add SERVER_URL_SCHEME to support https 2020-05-03 16:09:55 -06:00
LICENSE Recent GMP is under LGPL v3. 2020-05-01 22:26:25 -04:00
Makefile makefile: add win32-also-cs, etc. 2020-06-02 08:28:10 -06:00
README.md add link to https://racket-lang.org/friendly.html (#3164) 2020-05-08 12:57:53 +02:00

Racket is a general-purpose programming language and an ecosystem for language-oriented programming.

This repository holds the source code for the core of Racket plus some related packages. The rest of the Racket distribution source code is in other repositories, mostly under the Racket GitHub organization.

Quick Start

Pre-built versions of Racket for a variety of operating systems and architectures, as well as convenient source distributions are available at

https://download.racket-lang.org

Racket comes with extensive documentation, including several tutorials. You can read all of this documentation, as well as documentation for third-party packages at

https://docs.racket-lang.org

Building from Source

For information on building Racket from this repository, see the Build Guide.

Contributing

Contribute to Racket by submitting a pull request, reporting an issue, joining the development mailing list, or visiting the IRC or Slack channels.

By making a contribution, you are agreeing that your contribution is licensed under the Apache 2.0 and MIT licenses. Those licenses are available in this repository in the files LICENSE-APACHE.txt and LICENSE-MIT.txt.

License

Racket is free software; see LICENSE for more details.

Friendly Environment Policy

Please see https://racket-lang.org/friendly.html